In this markdown, we will do a comparison of the transcriptomes during development of Ptychodera, Amphixous, and Purple Sea Urchin.
For this, we will use a solution of custom R functions and wrappers that we have named “comparABle” (kudos to @agilgal for the name!).
library(tidyverse)
library(stringr)
library(BiocGenerics)
library(EDASeq)
library(DESeq2)
library(tximport)
library(limma)
library(ComplexHeatmap)
library(circlize)
library(RColorBrewer)
require(data.table)
require(stringr)
require(tidytree)
require(ggtree)
require(rvcheck)
require(treeio)
require(dendextend)
require(phangorn)
require(phytools)
require(ComplexHeatmap)
require(foreach)
require(doParallel)
require(colorspace)
library(topGO)
source("code/r_code/r_functions/sourcefolder.R")
sourceFolder(
"code/r_code/r_functions",
recursive = TRUE
)
sourceFolder(
"code/r_code/r_general",
recursive = TRUE
)
sourceFolder(
"/home/ska/aperpos/Def_Pfla/RSCRIPTS/comparABle-main/code/functions",
recursive = TRUE
)
We will first load the data of our three species:
# Ptychodera analyses
load("outputs/rda/deseq2.rda")
# Amphioxus reanalysis
load("outputs/rda/blan_reanalysis.rda")
# Purple Sea Urchin reanalysis
load("outputs/rda/spur_reanalysis.rda")
We will follow by loading all the gene family data that we need. This is the gene/gfam lookup table (extracted from the OrthoXML output file from OMA) and the respective table to transform the gene indexes into the actual gene id of every species.
gfams_intid_gene_intid.tsv <-
read.delim2(
file = "outputs/comparative/oma/gfams_intid_gene_intid.tsv",
header = TRUE,
col.names = c("gfam_intid","intid")
)
gene_intid_id <- read.delim2(
file = "outputs/comparative/oma/intid_id.tsv",
header = FALSE,
col.names = c("intid","id")
)
gene_gfam <-
gfams_intid_gene_intid.tsv[,c(2,1)]
gene_gfam$id <-
translate_ids(x = gene_gfam$intid, dict = gene_intid_id)
gene_gfam <- gene_gfam[,c(3,2)]
gene_gfam$id <- sub("\\.p[1-9]+","",gene_gfam$id)
gene_gfam$gfam_intid <- as.character(gene_gfam$gfam_intid)
This gene_gfam file will be used later on as proxy to compare developmental stages.
head(gene_gfam)
## id gfam_intid
## 1 CAEEL00007 1
## 2 SCHMD09491 1
## 3 SCHMD28687 2
## 4 SCHMD02140 2
## 5 CAEEL00052 2
## 6 CAEEL00105 3
oma_pfla_blan <- read.delim2("outputs/comparative/oma/1to1_orthologs/1to1_pfla_brala.tsv", header = FALSE)
oma_pfla_blan$V2 <- gsub(" ","",oma_pfla_blan$V2)
oma_pfla_spur <- read.delim2("outputs/comparative/oma/1to1_orthologs/1to1_pfla_spur.tsv", header = FALSE)
oma_pfla_spur$V2 <- gsub(" ","",oma_pfla_spur$V2)
load("outputs/rda/geneage.rda")
For more functional annotation, we will use the COG functional categories and the GO terms of Ptychodera.
pfla_cogs <- read.table(
"outputs/functional_annotation/COGs/pfla_cogs.tsv",
col.names = c("id","cog")
)
# GO terms
pfla_id2go <-
readMappings(
"outputs/functional_annotation/go_blast2go/GO_annotation.txt"
)
We will first compare the transcriptomes and stage-specific clusters of Ptychodera and Amphioxus. For this, we will define a number of objects that will enter into our custom wrapper function comparABle. The most important of them being:
In addition, we will also pass it a list of gene ontologies, a COG functional category association file, and a list of gene ages that are shared between species A and B.
# Expression data
a = pfla_rna_counts
b = blan_counts
# Samples for rowmeans_by repl
a_samples = levels(condition_x)
b_samples = unique(sub("_.$", "", colnames(b)))
# Family/orthology data
o = unique(oma_pfla_blan)
f = gene_gfam[grep("TCONS|BRALA",gene_gfam$id),]
# Module/Cluster information
ma = data.frame(
id = rownames(pfla_rna_dev),
module = pfla_rna_dev$cID
)
mb = blan_cl
colnames(mb) <- c("id","module")
# Gene Age
ga = pfla_age[,c(1,3)]
colnames(ga) = c("id","age")
# COG
cog_a <- pfla_cogs
# GOs
a_universe = rownames(vsd_allgen)
a_id2go = pfla_id2go
# Common Evo Nodes
common_evo_nodes = unique(ga$age)[!(unique(ga$age) %in% c("Ambu","Hemich","Pfla_specif"))]
Below we will run the comparABle wrapper. Briefly, what this wrapper does is:
This can take some time.
PFLA_BLAN_COMPARISON <- comparABle(
a_name = "P.flava",
b_name = "B.lanceolatum",
a = a,
b = b,
o = o,
f = f,
ma = ma,
mb = mb,
ga = ga,
gb = gb,
cog_a = cog_a,
cog_b = cog_b,
across_a = c("05_MG","06_MG","07_LG","08_To"),
across_b = c("10_27h","11_36h","12_50h","13_60h"),
a_samples = a_samples,
b_samples = b_samples,
highlyvariable = TRUE,
cooc_p = 0.05,
cooc_h = c(0.70,0.95),
cooc_cor_method = "pearson",
a_universe = a_universe,
a_id2go = a_id2go,
common_evo_nodes = common_evo_nodes,
sep = ",\ "
)
## [1] "Tidy up data"
## Loading required package: preprocessCore
## [1] "Merge data"
## [1] "Correlations"
## [1] "PCA"
## [1] "Co-Occurrence"
## [1] "Common genes in Correlations"
## [1] "Common genes in Correlations (GO)"
## [1] "Starting analysis 1 of 1"
##
## Building most specific GOs .....
## ( 15540 GO terms found. )
##
## Build GO DAG topology ..........
## ( 15584 GO terms and 36018 relations. )
##
## Annotating nodes ...............
## ( 15464 genes annotated to the GO terms. )
##
## -- Classic Algorithm --
##
## the algorithm is scoring 4134 nontrivial nodes
## parameters:
## test statistic: fisher
## [1] "Common genes in Correlations (age)"
## [1] "Pairwise Orthology Overlap Strategy across modules -- hypergeometric and binonmial tests"
## [1] "Getting info on genes from shared families across modules"
## [1] "Starting analysis 1 of 20"
##
## Building most specific GOs .....
## ( 15540 GO terms found. )
##
## Build GO DAG topology ..........
## ( 15584 GO terms and 36018 relations. )
##
## Annotating nodes ...............
## ( 15464 genes annotated to the GO terms. )
##
## -- Classic Algorithm --
##
## the algorithm is scoring 2827 nontrivial nodes
## parameters:
## test statistic: fisher
## [1] "Starting analysis 2 of 20"
##
## Building most specific GOs .....
## ( 15540 GO terms found. )
##
## Build GO DAG topology ..........
## ( 15584 GO terms and 36018 relations. )
##
## Annotating nodes ...............
## ( 15464 genes annotated to the GO terms. )
##
## -- Classic Algorithm --
##
## the algorithm is scoring 1541 nontrivial nodes
## parameters:
## test statistic: fisher
## [1] "Starting analysis 3 of 20"
##
## Building most specific GOs .....
## ( 15540 GO terms found. )
##
## Build GO DAG topology ..........
## ( 15584 GO terms and 36018 relations. )
##
## Annotating nodes ...............
## ( 15464 genes annotated to the GO terms. )
##
## -- Classic Algorithm --
##
## the algorithm is scoring 1794 nontrivial nodes
## parameters:
## test statistic: fisher
## Warning in rev(-log(as.numeric(allres_x$classicFisher[1:maxgenesplot]) * : NAs
## introduced by coercion
## Warning in min(x): no non-missing arguments to min; returning Inf
## Warning in max(x): no non-missing arguments to max; returning -Inf
## [1] "Starting analysis 4 of 20"
##
## Building most specific GOs .....
## ( 15540 GO terms found. )
##
## Build GO DAG topology ..........
## ( 15584 GO terms and 36018 relations. )
##
## Annotating nodes ...............
## ( 15464 genes annotated to the GO terms. )
##
## -- Classic Algorithm --
##
## the algorithm is scoring 2257 nontrivial nodes
## parameters:
## test statistic: fisher
## [1] "Starting analysis 5 of 20"
##
## Building most specific GOs .....
## ( 15540 GO terms found. )
##
## Build GO DAG topology ..........
## ( 15584 GO terms and 36018 relations. )
##
## Annotating nodes ...............
## ( 15464 genes annotated to the GO terms. )
##
## -- Classic Algorithm --
##
## the algorithm is scoring 2241 nontrivial nodes
## parameters:
## test statistic: fisher
## [1] "Starting analysis 6 of 20"
##
## Building most specific GOs .....
## ( 15540 GO terms found. )
##
## Build GO DAG topology ..........
## ( 15584 GO terms and 36018 relations. )
##
## Annotating nodes ...............
## ( 15464 genes annotated to the GO terms. )
##
## -- Classic Algorithm --
##
## the algorithm is scoring 1629 nontrivial nodes
## parameters:
## test statistic: fisher
## [1] "Starting analysis 7 of 20"
##
## Building most specific GOs .....
## ( 15540 GO terms found. )
##
## Build GO DAG topology ..........
## ( 15584 GO terms and 36018 relations. )
##
## Annotating nodes ...............
## ( 15464 genes annotated to the GO terms. )
##
## -- Classic Algorithm --
##
## the algorithm is scoring 954 nontrivial nodes
## parameters:
## test statistic: fisher
## [1] "Starting analysis 8 of 20"
##
## Building most specific GOs .....
## ( 15540 GO terms found. )
##
## Build GO DAG topology ..........
## ( 15584 GO terms and 36018 relations. )
##
## Annotating nodes ...............
## ( 15464 genes annotated to the GO terms. )
##
## -- Classic Algorithm --
##
## the algorithm is scoring 1779 nontrivial nodes
## parameters:
## test statistic: fisher
## [1] "Starting analysis 9 of 20"
##
## Building most specific GOs .....
## ( 15540 GO terms found. )
##
## Build GO DAG topology ..........
## ( 15584 GO terms and 36018 relations. )
##
## Annotating nodes ...............
## ( 15464 genes annotated to the GO terms. )
##
## -- Classic Algorithm --
##
## the algorithm is scoring 880 nontrivial nodes
## parameters:
## test statistic: fisher
## [1] "Starting analysis 10 of 20"
##
## Building most specific GOs .....
## ( 15540 GO terms found. )
##
## Build GO DAG topology ..........
## ( 15584 GO terms and 36018 relations. )
##
## Annotating nodes ...............
## ( 15464 genes annotated to the GO terms. )
##
## -- Classic Algorithm --
##
## the algorithm is scoring 2056 nontrivial nodes
## parameters:
## test statistic: fisher
## [1] "Starting analysis 11 of 20"
##
## Building most specific GOs .....
## ( 15540 GO terms found. )
##
## Build GO DAG topology ..........
## ( 15584 GO terms and 36018 relations. )
##
## Annotating nodes ...............
## ( 15464 genes annotated to the GO terms. )
##
## -- Classic Algorithm --
##
## the algorithm is scoring 1226 nontrivial nodes
## parameters:
## test statistic: fisher
## [1] "Starting analysis 12 of 20"
##
## Building most specific GOs .....
## ( 15540 GO terms found. )
##
## Build GO DAG topology ..........
## ( 15584 GO terms and 36018 relations. )
##
## Annotating nodes ...............
## ( 15464 genes annotated to the GO terms. )
##
## -- Classic Algorithm --
##
## the algorithm is scoring 1916 nontrivial nodes
## parameters:
## test statistic: fisher
## [1] "Starting analysis 13 of 20"
##
## Building most specific GOs .....
## ( 15540 GO terms found. )
##
## Build GO DAG topology ..........
## ( 15584 GO terms and 36018 relations. )
##
## Annotating nodes ...............
## ( 15464 genes annotated to the GO terms. )
##
## -- Classic Algorithm --
##
## the algorithm is scoring 1312 nontrivial nodes
## parameters:
## test statistic: fisher
## [1] "Starting analysis 14 of 20"
##
## Building most specific GOs .....
## ( 15540 GO terms found. )
##
## Build GO DAG topology ..........
## ( 15584 GO terms and 36018 relations. )
##
## Annotating nodes ...............
## ( 15464 genes annotated to the GO terms. )
##
## -- Classic Algorithm --
##
## the algorithm is scoring 709 nontrivial nodes
## parameters:
## test statistic: fisher
## [1] "Starting analysis 15 of 20"
##
## Building most specific GOs .....
## ( 15540 GO terms found. )
##
## Build GO DAG topology ..........
## ( 15584 GO terms and 36018 relations. )
##
## Annotating nodes ...............
## ( 15464 genes annotated to the GO terms. )
##
## -- Classic Algorithm --
##
## the algorithm is scoring 1646 nontrivial nodes
## parameters:
## test statistic: fisher
## [1] "Starting analysis 16 of 20"
##
## Building most specific GOs .....
## ( 15540 GO terms found. )
##
## Build GO DAG topology ..........
## ( 15584 GO terms and 36018 relations. )
##
## Annotating nodes ...............
## ( 15464 genes annotated to the GO terms. )
##
## -- Classic Algorithm --
##
## the algorithm is scoring 1256 nontrivial nodes
## parameters:
## test statistic: fisher
## [1] "Starting analysis 17 of 20"
##
## Building most specific GOs .....
## ( 15540 GO terms found. )
##
## Build GO DAG topology ..........
## ( 15584 GO terms and 36018 relations. )
##
## Annotating nodes ...............
## ( 15464 genes annotated to the GO terms. )
##
## -- Classic Algorithm --
##
## the algorithm is scoring 1782 nontrivial nodes
## parameters:
## test statistic: fisher
## [1] "Starting analysis 18 of 20"
##
## Building most specific GOs .....
## ( 15540 GO terms found. )
##
## Build GO DAG topology ..........
## ( 15584 GO terms and 36018 relations. )
##
## Annotating nodes ...............
## ( 15464 genes annotated to the GO terms. )
##
## -- Classic Algorithm --
##
## the algorithm is scoring 949 nontrivial nodes
## parameters:
## test statistic: fisher
## [1] "Starting analysis 19 of 20"
##
## Building most specific GOs .....
## ( 15540 GO terms found. )
##
## Build GO DAG topology ..........
## ( 15584 GO terms and 36018 relations. )
##
## Annotating nodes ...............
## ( 15464 genes annotated to the GO terms. )
##
## -- Classic Algorithm --
##
## the algorithm is scoring 992 nontrivial nodes
## parameters:
## test statistic: fisher
## [1] "Starting analysis 20 of 20"
##
## Building most specific GOs .....
## ( 15540 GO terms found. )
##
## Build GO DAG topology ..........
## ( 15584 GO terms and 36018 relations. )
##
## Annotating nodes ...............
## ( 15464 genes annotated to the GO terms. )
##
## -- Classic Algorithm --
##
## the algorithm is scoring 1439 nontrivial nodes
## parameters:
## test statistic: fisher
## [1] "Plots"
## Warning: The input is a data frame-like object, convert it to a matrix.
## Warning: The input is a data frame-like object, convert it to a matrix.
## [1] "Generating results"
After running this we can start exploring the comparisons. First we will tidy up the pairwise correlation data and add names to the rows and columns of the jensen-shannon distance matrix.
colnames(PFLA_BLAN_COMPARISON$pairwise_correlations$js) <-
unique(sub("_.$", "", colnames(b)))
rownames(PFLA_BLAN_COMPARISON$pairwise_correlations$js) <-
rownames(PFLA_BLAN_COMPARISON$pairwise_correlations$pe)
Here are the heatmaps of pairwise correlations between Ptychodera and Amphioxus.
h1 <- Heatmap(PFLA_BLAN_COMPARISON$pairwise_correlations$pe,cluster_rows = F, cluster_columns = F, show_row_names = TRUE, name = "Pearson", col = sequential_hcl(10,"BluYl", rev = TRUE))
h2 <- Heatmap(PFLA_BLAN_COMPARISON$pairwise_correlations$sp,cluster_rows = F, cluster_columns = F, show_row_names = TRUE, name = "Spearman", col = sequential_hcl(10,"YlOrRd", rev = TRUE))
h3 <- Heatmap(PFLA_BLAN_COMPARISON$pairwise_correlations$js,cluster_rows = F, cluster_columns = F, show_row_names = TRUE, name = "JSD", col = brewer.pal(10,"RdBu"))
h_list <- h1+h2+h3
draw(h_list, auto_adjust = FALSE)
Here is the average expression profile of genes highly correlated in gastrulation/neurulation between Ptychodera an Amphioxus:
# Common genes, highly correlated
par(mfrow = c(1,2))
boxplot(
main = "P.flava",
PFLA_BLAN_COMPARISON$high_corr_genes$table[,3:6],
col = viridis::inferno(7)[3:7],
xlab = "stage",
ylab = "scaled expression"
)
boxplot(
main = "B.lanceolatum",
PFLA_BLAN_COMPARISON$high_corr_genes$table[,7:10],
col = viridis::magma(7)[3:7],
xlab = "stage",
ylab = "scaled expression"
)
par(mfrow = c(1,1))
And a quick scatter plot of the enriched GO terms:
# GO terms
#' turn this into a GGplot, same for the whole plethora of
#' enriched GO terms
plot(
x =
PFLA_BLAN_COMPARISON$high_corr_genes$GOs$GOtable$a$Significant /
PFLA_BLAN_COMPARISON$high_corr_genes$GOs$GOtable$a$Expected,
y =
-log(
as.numeric(
PFLA_BLAN_COMPARISON$high_corr_genes$GOs$GOtable$a$classicFisher
)
),
xlab = "FC no. Obs/Exp genes",
ylab = "-logpvalue"
)
text(
x =
PFLA_BLAN_COMPARISON$high_corr_genes$GOs$GOtable$a$Significant /
PFLA_BLAN_COMPARISON$high_corr_genes$GOs$GOtable$a$Expected,
y =
-log(
as.numeric(
PFLA_BLAN_COMPARISON$high_corr_genes$GOs$GOtable$a$classicFisher
)
),
labels = PFLA_BLAN_COMPARISON$high_corr_genes$GOs$GOtable$a$Term,
pos = 4,
offset = 0.5,
cex = 0.6
)
We also have a look at the gene age enrichment analysis of these highly-correlated genes in gastrulation
# Age of highly cor genes
par(mfrow = c(1,2))
barplot(
as.numeric(c(PFLA_BLAN_COMPARISON$high_corr_genes$age$enrichment[1,1:5])),
col = brewer.pal(5, "Spectral"),
main = "gene Age Enrichment"
)
barplot(
as.numeric(c(PFLA_BLAN_COMPARISON$high_corr_genes$age$AgeperModule[1,1:5])),
col = brewer.pal(5, "Spectral"),
main = "Genes per Age per Gene Module"
)
par(mfrow = c(1,1))
Here is the co-occurrence analysis showcasing the Amphioxus stages most similar to Ptychodera gastrulation are the stages corresponding to neurulation.
Heatmap(
name = "co-occurrence",
PFLA_BLAN_COMPARISON$coocurrence_analysis$cooccurrence,
cluster_rows = PFLA_BLAN_COMPARISON$coocurrence_analysis$tree,
cluster_columns = PFLA_BLAN_COMPARISON$coocurrence_analysis$tree,
col = sequential_hcl(10,"YlOrRd", rev = TRUE)
)
Here the orthology overlap strategy showcasing similarities at the gene family usage between hemichordate larval stages and amphioxus post-gastrulation development
pf_avg_hm+
PFLA_BLAN_COMPARISON$plots$orthology_overlap_binomial_hm+
PFLA_BLAN_COMPARISON$plots$orthology_overlap_hypgeom_hm
Here is a quick overview of the stats of the hypergeometric and binomial tests for pairwise comparisons:
head(PFLA_BLAN_COMPARISON$orthology_overlap_modules$pairwise_module_comparison$stats)
## module_a module_b success_in_samples sample_size success_in_pop gene_POP
## 2 01 1 35 1207 334 20066
## 3 01 2 39 1207 340 20066
## 4 01 3 67 1207 595 20066
## 5 01 4 26 1207 255 20066
## 6 01 5 13 1207 196 20066
## 7 01 6 29 1207 556 20066
## hypgeom_pval hypgeom_log binom_pval
## 2 0.0010111407774 6.8966761 0.002137262944
## 3 0.0000839765264 9.3849732 0.000192036516
## 4 0.0000005443081 14.4237503 0.000001635111
## 5 0.0060349065256 5.1101949 0.009801109388
## 6 0.3990463253712 0.9186778 0.659867254119
## 7 0.8132178603735 0.2067562 0.483327221846
## gfams_common
## 2 40289, 36299, 40311, 47105, 42309, 46554, 47260, 42195, 36388, 31368, 31145, 43514, 41037, 32297, 48757, 36144, 42361, 40511, 42679, 30559, 33578, 46464, 47291, 43375, 30727, 47618, 47145, 31700, 36322, 31116, 46987, 40525, 40513, 40907, 42782
## 3 49016, 42674, 49085, 48797, 30377, 40769, 47159, 37878, 48536, 42274, 43091, 42775, 43455, 36422, 36348, 30580, 40816, 42970, 43099, 47491, 42662, 37178, 31862, 31387, 47273, 41208, 47895, 31810, 48942, 30969, 43342, 47310, 36647, 40477, 48396, 31308, 40787, 31410, 48021
## 4 31973, 41948, 47416, 42415, 49899, 40698, 47454, 46706, 47133, 37260, 35796, 42054, 30509, 47973, 37193, 48646, 49639, 40345, 47083, 31363, 40275, 47767, 35960, 30649, 47577, 31086, 40316, 47535, 40940, 47283, 36655, 35881, 41983, 30400, 46427, 42889, 49143, 50023, 42345, 40564, 36272, 47239, 49993, 47202, 36248, 42732, 42043, 41372, 43206, 30289, 40887, 36900, 31117, 42060, 40673, 46381, 40625, 36414, 37113, 31308, 46776, 40810, 42188, 32043, 47349, 40767, 36948
## 5 43096, 36319, 40440, 48111, 42768, 49085, 42195, 36650, 49714, 30433, 30580, 33139, 48845, 31325, 49556, 40367, 42330, 41199, 30709, 42750, 47054, 49330, 48084, 30626, 43417, 31076
## 6 48097, 43307, 49691, 47618, 40268, 36977, 40878, 40323, 36015, 42935, 32053, 31298, 31461
## 7 32119, 49014, 46593, 44717, 47811, 49085, 43253, 43278, 31561, 42408, 40317, 41124, 31367, 40356, 43218, 49810, 42979, 40316, 31555, 47691, 31877, 48013, 46463, 41086, 37248, 49006, 47057, 36435, 42756
## gfams_excl_a
## 2 47207, 11295, 37764, 12130, 13036, 32119, 41908, 11277, 11275, 42600, 35809, 32108, 35525, 40532, 38126, 12393, 49703, 28723, 38930, 40750, 30803, 42915, 28102, 43551, 37109, 31050, 47582, 40697, 29369, 31973, 43096, 34448, 49014, 10969, 45199, 30600, 32004, 12743, 28481, 11767, 12255, 48511, 42136, 13898, 40656, 40582, 47555, 34784, 30604, 49088, 26900, 42821, 46883, 30396, 40429, 47474, 38081, 29334, 46347, 28686, 36319, 27112, 43406, 12229, 42961, 13589, 40893, 35519, 11786, 13269, 27657, 31282, 43380, 30465, 42609, 47476, 13507, 48985, 26889, 41058, 12226, 48934, 40440, 44784, 41948, 28542, 12465, 11207, 47416, 43400, 40649, 49941, 12730, 45047, 46593, 27149, 40886, 37920, 43262, 11085, 13748, 29773, 34422, 42415, 49016, 38961, 48151, 44717, 38368, 45619, 45703, 48111, 41139, 31773, 12092, 37427, 49899, 45710, 47096, 46687, 42768, 41239, 38332, 41638, 42712, 40695, 37324, 48064, 30410, 42786, 42711, 12829, 47811, 37006, 48940, 42674, 43159, 40698, 43222, 34814, 27133, 36887, 34813, 12156, 26810, 46534, 37743, 12613, 40652, 38944, 49201, 47454, 47897, 37589, 27003, 31320, 43545, 37444, 26793, 13686, 47326, 49085, 37361, 27330, 47153, 47927, 31551, 31580, 48373, 11199, 11612, 49750, 37787, 47143, 43450, 46900, 30141, 41201, 49775, 13022, 48797, 30377, 48858, 43034, 44369, 12454, 46975, 43253, 27504, 42785, 41222, 34832, 35967, 12671, 11763, 39002, 43739, 12155, 34067, 11282, 48167, 37192, 27366, 49565, 11178, 11724, 13820, 49512, 49838, 46445, 29303, 31897, 11791, 30599, 47735, 37457, 13572, 48869, 30200, 46706, 43898, 35476, 47677, 40769, 12336, 11102, 48161, 48070, 47133, 42682, 31006, 42525, 12723, 47580, 14065, 41379, 45019, 12425, 29580, 40380, 31906, 14031, 42128, 34927, 43278, 12937, 46946, 44004, 48926, 48760, 14066, 11825, 28402, 27451, 12787, 49033, 46531, 29191, 43481, 28987, 41615, 27289, 37260, 32335, 47159, 28134, 13325, 39160, 34379, 27459, 35796, 48062, 37878, 27359, 41153, 42054, 13650, 12178, 31604, 11090, 12288, 31747, 27728, 46686, 49202, 42172, 12286, 14107, 32333, 43914, 27432, 37136, 28046, 27376, 43992, 48536, 45693, 10942, 42438, 31263, 39233, 30509, 41655, 30060, 11301, 41146, 48098, 27892, 31561, 42408, 11765, 47550, 12409, 49457, 47973, 43237, 48826, 49695, 40317, 42293, 48407, 43900, 11901, 41901, 31341, 41124, 34103, 39254, 49791, 40312, 42798, 26892, 37193, 42522, 11488, 36634, 12316, 27369, 39413, 31367, 46620, 48811, 37846, 31014, 40402, 37410, 36695, 48646, 42659, 34201, 46752, 36243, 42502, 36650, 29093, 36311, 11570, 47984, 32435, 13666, 46924, 35494, 47495, 49456, 49198, 42274, 45643, 40356, 48241, 46393, 43049, 13487, 37078, 49639, 30577, 29025, 30488, 13495, 13488, 43091, 44934, 28759, 11418, 36451, 12287, 29832, 46733, 11368, 30412, 49230, 49643, 38622, 49034, 42775, 37612, 27464, 12965, 46440, 40345, 42011, 37388, 30320, 29761, 13359, 35811, 29370, 43752, 48689, 41986, 48967, 12860, 32078, 40313, 36907, 11585, 34155, 41397, 11594, 43657, 28015, 42800, 39428, 11597, 46612, 47137, 41392, 43282, 40621, 47534, 48409, 11673, 11531, 29298, 12998, 34096, 28934, 10936, 44033, 46410, 11078, 26865, 13708, 13026, 10962, 42947, 46780, 28865, 47226, 27287, 43455, 29221, 39409, 42109, 31098, 49169, 47732, 37241, 28413, 49714, 43218, 30448, 49115, 28051, 29212, 37841, 42966, 46551, 48039, 32409, 37553, 39394, 43748, 31444, 48097, 30955, 11465, 46685, 42288, 43683, 26832, 12407, 49217, 46411, 46789, 11054, 48863, 34840, 12734, 40329, 32295, 47591, 42102, 47083, 28654, 30548, 44027, 31363, 27759, 36422, 46697, 40288, 36348, 40275, 40420, 47613, 31741, 41707, 12459, 37117, 47767, 26936, 30539, 42478, 42601, 14093, 49810, 48358, 36521, 47704, 42663, 46769, 41535, 34956, 12491, 42316, 36357, 35960, 34145, 42448, 12475, 30649, 47577, 12572, 42747, 43229, 12353, 41312, 34807, 40535, 29161, 11911, 30433, 29225, 42434, 13464, 31086, 42979, 12002, 30258, 27193, 28376, 31540, 47502, 11177, 28000, 40752, 26986, 26773, 34284, 41604, 12338, 30836, 12244, 40854, 36957, 30580, 30809, 48808, 40273, 34206, 40816, 27523, 46720, 36627, 48134, 37750, 47043, 30464, 34669, 34107, 42864, 29464, 43307, 37251, 30199, 11830, 28656, 47442, 43681, 13652, 40316, 29481, 35982, 42970, 41097, 41950, 30269, 40505, 29248, 43099, 47535, 34873, 12718, 47977, 48163, 41304, 11458, 40940, 11669, 42350, 47676, 46984, 13426, 37155, 43312, 27510, 47491, 30076, 47283, 36655, 49716, 49691, 31555, 12941, 35881, 44670, 48135, 33139, 11853, 40327, 34804, 13839, 46645, 28831, 47056, 39317, 42235, 26978, 41983, 34138, 36534, 42662, 41936, 45126, 48845, 47744, 30400, 27070, 46427, 13515, 29348, 27183, 42653, 47500, 35687, 47506, 28963, 13851, 40538, 12261, 34249, 29501, 35542, 29474, 12850, 26874, 12050, 41054, 47184, 29550, 34188, 11297, 39303, 37178, 28913, 40274, 40294, 31862, 47029, 27094, 30092, 40343, 29777, 29561, 27994, 42912, 28856, 47741, 13932, 39257, 31387, 46731, 36574, 47691, 43529, 30384, 47672, 13002, 41473, 42630, 48987, 26867, 46380, 31325, 42889, 40660, 42774, 27583, 40268, 49556, 41704, 34335, 42210, 42372, 31877, 40902, 27253, 11953, 37148, 11605, 34947, 27942, 29516, 45572, 40522, 48285, 47250, 40367, 47273, 43141, 36977, 12895, 26931, 47138, 40878, 43401, 43260, 26757, 36707, 48834, 49733, 43691, 27733, 11442, 36389, 42176, 43219, 49143, 46509, 11249, 34893, 27241, 13262, 46800, 47801, 42469, 42414, 40909, 47173, 13832, 31723, 12431, 47222, 31276, 30843, 28712, 42330, 41199, 30222, 36940, 49870, 41434, 41711, 48695, 48013, 30435, 50031, 37411, 50023, 42196, 40323, 12768, 42093, 27335, 34803, 37714, 34459, 47764, 27530, 47843, 41309, 40442, 49060, 42345, 47576, 13822, 45724, 48379, 46477, 40405, 49106, 37646, 12790, 28428, 13461, 29289, 13911, 42108, 40564, 29524, 30285, 36272, 48784, 28287, 43567, 41208, 40265, 43917, 47239, 42025, 30709, 49059, 37279, 29185, 12542, 46463, 34383, 12129, 35897, 13471, 28149, 11121, 41487, 30459, 46950, 37495, 13470, 43102, 49592, 49993, 40997, 37153, 47874, 48857, 41013, 42217, 42750, 47895, 28178, 12642, 47634, 49093, 28595, 40408, 47054, 13580, 34450, 41098, 41092, 34071, 49330, 29199, 11416, 48159, 31810, 43972, 37771, 44356, 48942, 41609, 31823, 11051, 48240, 40324, 13634, 34922, 30969, 47202, 46842, 42652, 47860, 27591, 47163, 44712, 47410, 36160, 47592, 31816, 26912, 46651, 36248, 26980, 40772, 11949, 31829, 36015, 12789, 38013, 34865, 13265, 49944, 43342, 41086, 47310, 47899, 13055, 37682, 27826, 49969, 37060, 40860, 11047, 27174, 42910, 31833, 49811, 30021, 43497, 27462, 48084, 37248, 42732, 49391, 47406, 13053, 13114, 40915, 28130, 36637, 29336, 28221, 40636, 12839, 34372, 42935, 48899, 46587, 30650, 37653, 40704, 13927, 42024, 47530, 32048, 34770, 49497, 27352, 31334, 12553, 36647, 42043, 41372, 40347, 30939, 43206, 13925, 37608, 30289, 29319, 46414, 32053, 35521, 40887, 31457, 30913, 41959, 47560, 43170, 13685, 13247, 40477, 32145, 27052, 44682, 40719, 39155, 36900, 41691, 41670, 34263, 31117, 49006, 46816, 11022, 47653, 31395, 28095, 42060, 14016, 28244, 30502, 48713, 37425, 26907, 12039, 48048, 42526, 34283, 45736, 31228, 40720, 40673, 33497, 34353, 30248, 46381, 31223, 49365, 40627, 30963, 40692, 27188, 36573, 36022, 40625, 12527, 28737, 34961, 47132, 30715, 47176, 48288, 34295, 48396, 27749, 29730, 36414, 30626, 42642, 43417, 26831, 28766, 49637, 11936, 49999, 13785, 36582, 32357, 34834, 47321, 34287, 12649, 43570, 36118, 37113, 34593, 34239, 42514, 30262, 27198, 47162, 37147, 43758, 41592, 27539, 39539, 37573, 37631, 47492, 40314, 32379, 40608, 43981, 31308, 42582, 28726, 47585, 40623, 12920, 13431, 28100, 31074, 37415, 34764, 43215, 13687, 29323, 47498, 32014, 47057, 31298, 30695, 46479, 37264, 11983, 13317, 41701, 46776, 47217, 48852, 49769, 42023, 43995, 49249, 41317, 43955, 29618, 39264, 48920, 36982, 27761, 37435, 36435, 30389, 50059, 46803, 36149, 30187, 48791, 47924, 40810, 26851, 37526, 42188, 27434, 37452, 43256, 34079, 11981, 43922, 47754, 40761, 13279, 30768, 31030, 34080, 48886, 32043, 47349, 42756, 46770, 40382, 13741, 40767, 46369, 27114, 47401, 42251, 27203, 34872, 43512, 40787, 31496, 27120, 42356, 13226, 34767, 47231, 12434, 49518, 47168, 36948, 12143, 40413, 43556, 12813, 31410, 34929, 29665, 27557, 40929, 31076, 31461, 26845, 44641, 44388, 32206, 13919, 11455, 35699, 48021, 13393
## 3 47207, 11295, 37764, 12130, 13036, 32119, 41908, 11277, 11275, 42600, 35809, 32108, 35525, 40532, 38126, 12393, 49703, 28723, 38930, 40750, 30803, 42915, 40289, 28102, 43551, 37109, 31050, 47582, 40697, 29369, 31973, 43096, 34448, 49014, 10969, 45199, 30600, 32004, 12743, 28481, 11767, 12255, 48511, 42136, 13898, 40656, 40582, 47555, 34784, 30604, 49088, 26900, 42821, 36299, 46883, 30396, 40429, 47474, 38081, 29334, 46347, 28686, 40311, 36319, 27112, 43406, 12229, 42961, 13589, 40893, 35519, 11786, 13269, 27657, 31282, 43380, 30465, 42609, 47476, 13507, 48985, 26889, 41058, 12226, 48934, 40440, 44784, 41948, 28542, 12465, 11207, 47416, 43400, 40649, 49941, 12730, 45047, 46593, 27149, 40886, 37920, 43262, 11085, 13748, 29773, 34422, 42415, 38961, 48151, 44717, 38368, 45619, 45703, 48111, 41139, 31773, 12092, 37427, 49899, 45710, 47096, 46687, 42768, 41239, 38332, 41638, 42712, 40695, 37324, 48064, 30410, 42786, 42711, 12829, 47811, 47105, 37006, 48940, 43159, 40698, 43222, 34814, 27133, 36887, 42309, 34813, 12156, 26810, 46534, 37743, 12613, 46554, 40652, 38944, 49201, 47454, 47897, 37589, 27003, 31320, 43545, 37444, 47260, 26793, 13686, 47326, 37361, 27330, 42195, 47153, 47927, 31551, 31580, 48373, 11199, 11612, 49750, 37787, 47143, 43450, 46900, 30141, 41201, 49775, 13022, 48858, 43034, 44369, 12454, 46975, 43253, 27504, 42785, 41222, 34832, 35967, 12671, 11763, 39002, 43739, 12155, 34067, 11282, 48167, 37192, 27366, 49565, 11178, 11724, 13820, 49512, 49838, 46445, 29303, 31897, 11791, 30599, 47735, 37457, 13572, 48869, 30200, 46706, 43898, 35476, 47677, 12336, 11102, 48161, 48070, 47133, 42682, 31006, 42525, 12723, 47580, 14065, 41379, 45019, 12425, 29580, 40380, 31906, 14031, 42128, 34927, 43278, 12937, 46946, 44004, 48926, 48760, 14066, 11825, 28402, 27451, 12787, 49033, 46531, 36388, 29191, 43481, 28987, 41615, 27289, 37260, 32335, 28134, 13325, 39160, 34379, 27459, 35796, 48062, 27359, 41153, 42054, 13650, 12178, 31604, 11090, 12288, 31747, 27728, 46686, 49202, 42172, 12286, 14107, 32333, 43914, 27432, 37136, 28046, 27376, 43992, 45693, 10942, 42438, 31263, 39233, 30509, 41655, 30060, 11301, 41146, 48098, 27892, 31561, 42408, 11765, 47550, 12409, 49457, 47973, 43237, 48826, 49695, 40317, 42293, 48407, 43900, 11901, 41901, 31341, 41124, 34103, 39254, 49791, 40312, 42798, 26892, 37193, 42522, 11488, 36634, 12316, 27369, 39413, 31367, 46620, 48811, 37846, 31014, 40402, 37410, 36695, 48646, 42659, 34201, 46752, 36243, 42502, 36650, 29093, 36311, 11570, 47984, 32435, 13666, 46924, 35494, 47495, 49456, 49198, 45643, 40356, 48241, 31368, 46393, 43049, 13487, 37078, 49639, 30577, 29025, 30488, 13495, 13488, 44934, 28759, 11418, 36451, 12287, 29832, 46733, 11368, 30412, 49230, 49643, 38622, 49034, 37612, 27464, 12965, 46440, 40345, 42011, 37388, 30320, 29761, 13359, 35811, 29370, 43752, 48689, 41986, 48967, 12860, 32078, 40313, 36907, 11585, 34155, 41397, 11594, 43657, 28015, 42800, 39428, 11597, 46612, 47137, 41392, 43282, 40621, 47534, 48409, 11673, 11531, 29298, 12998, 34096, 28934, 10936, 44033, 46410, 11078, 31145, 26865, 13708, 13026, 10962, 42947, 46780, 28865, 47226, 27287, 29221, 39409, 42109, 31098, 49169, 43514, 47732, 37241, 28413, 49714, 43218, 30448, 49115, 28051, 29212, 37841, 42966, 46551, 48039, 32409, 37553, 39394, 43748, 31444, 48097, 30955, 11465, 46685, 42288, 43683, 26832, 12407, 41037, 49217, 46411, 46789, 11054, 48863, 34840, 12734, 40329, 32295, 47591, 42102, 47083, 28654, 32297, 30548, 44027, 31363, 27759, 46697, 40288, 40275, 40420, 47613, 31741, 41707, 12459, 37117, 47767, 26936, 30539, 42478, 42601, 14093, 49810, 48358, 36521, 47704, 42663, 46769, 41535, 34956, 12491, 42316, 36357, 35960, 34145, 42448, 12475, 30649, 47577, 12572, 42747, 43229, 12353, 41312, 34807, 40535, 29161, 11911, 30433, 29225, 48757, 42434, 13464, 31086, 42979, 12002, 36144, 42361, 30258, 27193, 28376, 31540, 47502, 11177, 28000, 40752, 26986, 26773, 34284, 41604, 12338, 30836, 12244, 40854, 36957, 30809, 48808, 40273, 34206, 27523, 46720, 36627, 48134, 37750, 47043, 30464, 34669, 40511, 34107, 42864, 29464, 43307, 37251, 30199, 11830, 28656, 47442, 43681, 13652, 42679, 40316, 29481, 30559, 35982, 41097, 41950, 30269, 40505, 29248, 47535, 33578, 34873, 12718, 47977, 48163, 41304, 46464, 11458, 40940, 11669, 42350, 47676, 46984, 13426, 37155, 43312, 27510, 30076, 47283, 36655, 47291, 49716, 49691, 31555, 12941, 35881, 44670, 48135, 33139, 11853, 40327, 34804, 13839, 46645, 28831, 47056, 39317, 42235, 26978, 41983, 34138, 36534, 41936, 45126, 48845, 47744, 30400, 27070, 46427, 13515, 29348, 27183, 42653, 47500, 35687, 47506, 28963, 13851, 40538, 12261, 34249, 29501, 35542, 29474, 12850, 26874, 12050, 41054, 47184, 29550, 34188, 11297, 39303, 43375, 28913, 40274, 40294, 47029, 27094, 30727, 47618, 30092, 40343, 29777, 29561, 27994, 42912, 28856, 47741, 13932, 39257, 46731, 36574, 47691, 43529, 47145, 30384, 47672, 13002, 41473, 42630, 48987, 26867, 46380, 31325, 42889, 40660, 42774, 27583, 40268, 49556, 41704, 34335, 42210, 42372, 31877, 40902, 27253, 11953, 37148, 11605, 34947, 27942, 31700, 29516, 45572, 40522, 48285, 47250, 40367, 43141, 36977, 12895, 26931, 47138, 40878, 43401, 43260, 26757, 36707, 48834, 49733, 43691, 36322, 27733, 11442, 36389, 42176, 43219, 49143, 46509, 11249, 34893, 27241, 13262, 46800, 31116, 47801, 42469, 42414, 40909, 47173, 13832, 31723, 12431, 47222, 31276, 30843, 28712, 42330, 41199, 30222, 36940, 49870, 41434, 41711, 48695, 48013, 30435, 50031, 37411, 46987, 50023, 42196, 40323, 12768, 42093, 27335, 34803, 37714, 34459, 47764, 27530, 47843, 41309, 40442, 49060, 42345, 47576, 13822, 45724, 48379, 46477, 40405, 49106, 37646, 12790, 28428, 13461, 29289, 13911, 42108, 40564, 29524, 30285, 36272, 48784, 28287, 43567, 40265, 43917, 47239, 42025, 30709, 49059, 37279, 29185, 12542, 46463, 34383, 12129, 35897, 13471, 28149, 11121, 41487, 30459, 46950, 37495, 13470, 43102, 49592, 49993, 40997, 37153, 47874, 48857, 41013, 42217, 42750, 28178, 12642, 47634, 49093, 28595, 40408, 47054, 13580, 34450, 41098, 41092, 34071, 49330, 29199, 11416, 48159, 43972, 37771, 44356, 41609, 31823, 11051, 48240, 40324, 13634, 34922, 47202, 46842, 42652, 47860, 27591, 47163, 44712, 47410, 36160, 47592, 31816, 26912, 46651, 36248, 26980, 40772, 11949, 31829, 36015, 12789, 38013, 34865, 13265, 49944, 41086, 47899, 13055, 37682, 27826, 49969, 37060, 40860, 11047, 27174, 42910, 31833, 49811, 30021, 43497, 27462, 48084, 37248, 42732, 40525, 49391, 47406, 13053, 13114, 40915, 28130, 36637, 29336, 28221, 40636, 12839, 34372, 42935, 48899, 46587, 30650, 37653, 40704, 13927, 42024, 47530, 32048, 34770, 49497, 27352, 31334, 12553, 42043, 41372, 40347, 30939, 43206, 13925, 37608, 30289, 29319, 46414, 32053, 35521, 40887, 31457, 30913, 41959, 47560, 43170, 13685, 13247, 32145, 27052, 44682, 40719, 39155, 36900, 41691, 41670, 34263, 31117, 49006, 46816, 11022, 47653, 31395, 28095, 42060, 14016, 28244, 30502, 48713, 37425, 26907, 12039, 48048, 42526, 34283, 45736, 31228, 40720, 40673, 33497, 34353, 30248, 46381, 31223, 49365, 40627, 30963, 40692, 27188, 36573, 36022, 40625, 12527, 28737, 34961, 47132, 30715, 47176, 48288, 34295, 27749, 29730, 36414, 30626, 42642, 43417, 26831, 28766, 49637, 11936, 49999, 13785, 36582, 32357, 34834, 47321, 34287, 12649, 43570, 36118, 37113, 34593, 34239, 40513, 42514, 30262, 27198, 47162, 37147, 43758, 41592, 27539, 39539, 37573, 37631, 47492, 40314, 32379, 40608, 43981, 42582, 28726, 47585, 40623, 12920, 13431, 28100, 31074, 37415, 34764, 43215, 13687, 29323, 47498, 32014, 47057, 31298, 30695, 40907, 46479, 37264, 11983, 13317, 41701, 46776, 47217, 48852, 49769, 42023, 43995, 49249, 41317, 43955, 29618, 39264, 48920, 36982, 27761, 37435, 36435, 30389, 50059, 46803, 36149, 30187, 48791, 47924, 40810, 26851, 37526, 42188, 27434, 37452, 43256, 34079, 11981, 43922, 47754, 42782, 40761, 13279, 30768, 31030, 34080, 48886, 32043, 47349, 42756, 46770, 40382, 13741, 40767, 46369, 27114, 47401, 42251, 27203, 34872, 43512, 31496, 27120, 42356, 13226, 34767, 47231, 12434, 49518, 47168, 36948, 12143, 40413, 43556, 12813, 34929, 29665, 27557, 40929, 31076, 31461, 26845, 44641, 44388, 32206, 13919, 11455, 35699, 13393
## 4 47207, 11295, 37764, 12130, 13036, 32119, 41908, 11277, 11275, 42600, 35809, 32108, 35525, 40532, 38126, 12393, 49703, 28723, 38930, 40750, 30803, 42915, 40289, 28102, 43551, 37109, 31050, 47582, 40697, 29369, 43096, 34448, 49014, 10969, 45199, 30600, 32004, 12743, 28481, 11767, 12255, 48511, 42136, 13898, 40656, 40582, 47555, 34784, 30604, 49088, 26900, 42821, 36299, 46883, 30396, 40429, 47474, 38081, 29334, 46347, 28686, 40311, 36319, 27112, 43406, 12229, 42961, 13589, 40893, 35519, 11786, 13269, 27657, 31282, 43380, 30465, 42609, 47476, 13507, 48985, 26889, 41058, 12226, 48934, 40440, 44784, 28542, 12465, 11207, 43400, 40649, 49941, 12730, 45047, 46593, 27149, 40886, 37920, 43262, 11085, 13748, 29773, 34422, 49016, 38961, 48151, 44717, 38368, 45619, 45703, 48111, 41139, 31773, 12092, 37427, 45710, 47096, 46687, 42768, 41239, 38332, 41638, 42712, 40695, 37324, 48064, 30410, 42786, 42711, 12829, 47811, 47105, 37006, 48940, 42674, 43159, 43222, 34814, 27133, 36887, 42309, 34813, 12156, 26810, 46534, 37743, 12613, 46554, 40652, 38944, 49201, 47897, 37589, 27003, 31320, 43545, 37444, 47260, 26793, 13686, 47326, 49085, 37361, 27330, 42195, 47153, 47927, 31551, 31580, 48373, 11199, 11612, 49750, 37787, 47143, 43450, 46900, 30141, 41201, 49775, 13022, 48797, 30377, 48858, 43034, 44369, 12454, 46975, 43253, 27504, 42785, 41222, 34832, 35967, 12671, 11763, 39002, 43739, 12155, 34067, 11282, 48167, 37192, 27366, 49565, 11178, 11724, 13820, 49512, 49838, 46445, 29303, 31897, 11791, 30599, 47735, 37457, 13572, 48869, 30200, 43898, 35476, 47677, 40769, 12336, 11102, 48161, 48070, 42682, 31006, 42525, 12723, 47580, 14065, 41379, 45019, 12425, 29580, 40380, 31906, 14031, 42128, 34927, 43278, 12937, 46946, 44004, 48926, 48760, 14066, 11825, 28402, 27451, 12787, 49033, 46531, 36388, 29191, 43481, 28987, 41615, 27289, 32335, 47159, 28134, 13325, 39160, 34379, 27459, 48062, 37878, 27359, 41153, 13650, 12178, 31604, 11090, 12288, 31747, 27728, 46686, 49202, 42172, 12286, 14107, 32333, 43914, 27432, 37136, 28046, 27376, 43992, 48536, 45693, 10942, 42438, 31263, 39233, 41655, 30060, 11301, 41146, 48098, 27892, 31561, 42408, 11765, 47550, 12409, 49457, 43237, 48826, 49695, 40317, 42293, 48407, 43900, 11901, 41901, 31341, 41124, 34103, 39254, 49791, 40312, 42798, 26892, 42522, 11488, 36634, 12316, 27369, 39413, 31367, 46620, 48811, 37846, 31014, 40402, 37410, 36695, 42659, 34201, 46752, 36243, 42502, 36650, 29093, 36311, 11570, 47984, 32435, 13666, 46924, 35494, 47495, 49456, 49198, 42274, 45643, 40356, 48241, 31368, 46393, 43049, 13487, 37078, 30577, 29025, 30488, 13495, 13488, 43091, 44934, 28759, 11418, 36451, 12287, 29832, 46733, 11368, 30412, 49230, 49643, 38622, 49034, 42775, 37612, 27464, 12965, 46440, 42011, 37388, 30320, 29761, 13359, 35811, 29370, 43752, 48689, 41986, 48967, 12860, 32078, 40313, 36907, 11585, 34155, 41397, 11594, 43657, 28015, 42800, 39428, 11597, 46612, 47137, 41392, 43282, 40621, 47534, 48409, 11673, 11531, 29298, 12998, 34096, 28934, 10936, 44033, 46410, 11078, 31145, 26865, 13708, 13026, 10962, 42947, 46780, 28865, 47226, 27287, 43455, 29221, 39409, 42109, 31098, 49169, 43514, 47732, 37241, 28413, 49714, 43218, 30448, 49115, 28051, 29212, 37841, 42966, 46551, 48039, 32409, 37553, 39394, 43748, 31444, 48097, 30955, 11465, 46685, 42288, 43683, 26832, 12407, 41037, 49217, 46411, 46789, 11054, 48863, 34840, 12734, 40329, 32295, 47591, 42102, 28654, 32297, 30548, 44027, 27759, 36422, 46697, 40288, 36348, 40420, 47613, 31741, 41707, 12459, 37117, 26936, 30539, 42478, 42601, 14093, 49810, 48358, 36521, 47704, 42663, 46769, 41535, 34956, 12491, 42316, 36357, 34145, 42448, 12475, 12572, 42747, 43229, 12353, 41312, 34807, 40535, 29161, 11911, 30433, 29225, 48757, 42434, 13464, 42979, 12002, 36144, 42361, 30258, 27193, 28376, 31540, 47502, 11177, 28000, 40752, 26986, 26773, 34284, 41604, 12338, 30836, 12244, 40854, 36957, 30580, 30809, 48808, 40273, 34206, 40816, 27523, 46720, 36627, 48134, 37750, 47043, 30464, 34669, 40511, 34107, 42864, 29464, 43307, 37251, 30199, 11830, 28656, 47442, 43681, 13652, 42679, 29481, 30559, 35982, 42970, 41097, 41950, 30269, 40505, 29248, 43099, 33578, 34873, 12718, 47977, 48163, 41304, 46464, 11458, 11669, 42350, 47676, 46984, 13426, 37155, 43312, 27510, 47491, 30076, 47291, 49716, 49691, 31555, 12941, 44670, 48135, 33139, 11853, 40327, 34804, 13839, 46645, 28831, 47056, 39317, 42235, 26978, 34138, 36534, 42662, 41936, 45126, 48845, 47744, 27070, 13515, 29348, 27183, 42653, 47500, 35687, 47506, 28963, 13851, 40538, 12261, 34249, 29501, 35542, 29474, 12850, 26874, 12050, 41054, 47184, 29550, 34188, 11297, 39303, 37178, 43375, 28913, 40274, 40294, 31862, 47029, 27094, 30727, 47618, 30092, 40343, 29777, 29561, 27994, 42912, 28856, 47741, 13932, 39257, 31387, 46731, 36574, 47691, 43529, 47145, 30384, 47672, 13002, 41473, 42630, 48987, 26867, 46380, 31325, 40660, 42774, 27583, 40268, 49556, 41704, 34335, 42210, 42372, 31877, 40902, 27253, 11953, 37148, 11605, 34947, 27942, 31700, 29516, 45572, 40522, 48285, 47250, 40367, 47273, 43141, 36977, 12895, 26931, 47138, 40878, 43401, 43260, 26757, 36707, 48834, 49733, 43691, 36322, 27733, 11442, 36389, 42176, 43219, 46509, 11249, 34893, 27241, 13262, 46800, 31116, 47801, 42469, 42414, 40909, 47173, 13832, 31723, 12431, 47222, 31276, 30843, 28712, 42330, 41199, 30222, 36940, 49870, 41434, 41711, 48695, 48013, 30435, 50031, 37411, 46987, 42196, 40323, 12768, 42093, 27335, 34803, 37714, 34459, 47764, 27530, 47843, 41309, 40442, 49060, 47576, 13822, 45724, 48379, 46477, 40405, 49106, 37646, 12790, 28428, 13461, 29289, 13911, 42108, 29524, 30285, 48784, 28287, 43567, 41208, 40265, 43917, 42025, 30709, 49059, 37279, 29185, 12542, 46463, 34383, 12129, 35897, 13471, 28149, 11121, 41487, 30459, 46950, 37495, 13470, 43102, 49592, 40997, 37153, 47874, 48857, 41013, 42217, 42750, 47895, 28178, 12642, 47634, 49093, 28595, 40408, 47054, 13580, 34450, 41098, 41092, 34071, 49330, 29199, 11416, 48159, 31810, 43972, 37771, 44356, 48942, 41609, 31823, 11051, 48240, 40324, 13634, 34922, 30969, 46842, 42652, 47860, 27591, 47163, 44712, 47410, 36160, 47592, 31816, 26912, 46651, 26980, 40772, 11949, 31829, 36015, 12789, 38013, 34865, 13265, 49944, 43342, 41086, 47310, 47899, 13055, 37682, 27826, 49969, 37060, 40860, 11047, 27174, 42910, 31833, 49811, 30021, 43497, 27462, 48084, 37248, 40525, 49391, 47406, 13053, 13114, 40915, 28130, 36637, 29336, 28221, 40636, 12839, 34372, 42935, 48899, 46587, 30650, 37653, 40704, 13927, 42024, 47530, 32048, 34770, 49497, 27352, 31334, 12553, 36647, 40347, 30939, 13925, 37608, 29319, 46414, 32053, 35521, 31457, 30913, 41959, 47560, 43170, 13685, 13247, 40477, 32145, 27052, 44682, 40719, 39155, 41691, 41670, 34263, 49006, 46816, 11022, 47653, 31395, 28095, 14016, 28244, 30502, 48713, 37425, 26907, 12039, 48048, 42526, 34283, 45736, 31228, 40720, 33497, 34353, 30248, 31223, 49365, 40627, 30963, 40692, 27188, 36573, 36022, 12527, 28737, 34961, 47132, 30715, 47176, 48288, 34295, 48396, 27749, 29730, 30626, 42642, 43417, 26831, 28766, 49637, 11936, 49999, 13785, 36582, 32357, 34834, 47321, 34287, 12649, 43570, 36118, 34593, 34239, 40513, 42514, 30262, 27198, 47162, 37147, 43758, 41592, 27539, 39539, 37573, 37631, 47492, 40314, 32379, 40608, 43981, 42582, 28726, 47585, 40623, 12920, 13431, 28100, 31074, 37415, 34764, 43215, 13687, 29323, 47498, 32014, 47057, 31298, 30695, 40907, 46479, 37264, 11983, 13317, 41701, 47217, 48852, 49769, 42023, 43995, 49249, 41317, 43955, 29618, 39264, 48920, 36982, 27761, 37435, 36435, 30389, 50059, 46803, 36149, 30187, 48791, 47924, 26851, 37526, 27434, 37452, 43256, 34079, 11981, 43922, 47754, 42782, 40761, 13279, 30768, 31030, 34080, 48886, 42756, 46770, 40382, 13741, 46369, 27114, 47401, 42251, 27203, 34872, 43512, 40787, 31496, 27120, 42356, 13226, 34767, 47231, 12434, 49518, 47168, 12143, 40413, 43556, 12813, 31410, 34929, 29665, 27557, 40929, 31076, 31461, 26845, 44641, 44388, 32206, 13919, 11455, 35699, 48021, 13393
## 5 47207, 11295, 37764, 12130, 13036, 32119, 41908, 11277, 11275, 42600, 35809, 32108, 35525, 40532, 38126, 12393, 49703, 28723, 38930, 40750, 30803, 42915, 40289, 28102, 43551, 37109, 31050, 47582, 40697, 29369, 31973, 34448, 49014, 10969, 45199, 30600, 32004, 12743, 28481, 11767, 12255, 48511, 42136, 13898, 40656, 40582, 47555, 34784, 30604, 49088, 26900, 42821, 36299, 46883, 30396, 40429, 47474, 38081, 29334, 46347, 28686, 40311, 27112, 43406, 12229, 42961, 13589, 40893, 35519, 11786, 13269, 27657, 31282, 43380, 30465, 42609, 47476, 13507, 48985, 26889, 41058, 12226, 48934, 44784, 41948, 28542, 12465, 11207, 47416, 43400, 40649, 49941, 12730, 45047, 46593, 27149, 40886, 37920, 43262, 11085, 13748, 29773, 34422, 42415, 49016, 38961, 48151, 44717, 38368, 45619, 45703, 41139, 31773, 12092, 37427, 49899, 45710, 47096, 46687, 41239, 38332, 41638, 42712, 40695, 37324, 48064, 30410, 42786, 42711, 12829, 47811, 47105, 37006, 48940, 42674, 43159, 40698, 43222, 34814, 27133, 36887, 42309, 34813, 12156, 26810, 46534, 37743, 12613, 46554, 40652, 38944, 49201, 47454, 47897, 37589, 27003, 31320, 43545, 37444, 47260, 26793, 13686, 47326, 37361, 27330, 47153, 47927, 31551, 31580, 48373, 11199, 11612, 49750, 37787, 47143, 43450, 46900, 30141, 41201, 49775, 13022, 48797, 30377, 48858, 43034, 44369, 12454, 46975, 43253, 27504, 42785, 41222, 34832, 35967, 12671, 11763, 39002, 43739, 12155, 34067, 11282, 48167, 37192, 27366, 49565, 11178, 11724, 13820, 49512, 49838, 46445, 29303, 31897, 11791, 30599, 47735, 37457, 13572, 48869, 30200, 46706, 43898, 35476, 47677, 40769, 12336, 11102, 48161, 48070, 47133, 42682, 31006, 42525, 12723, 47580, 14065, 41379, 45019, 12425, 29580, 40380, 31906, 14031, 42128, 34927, 43278, 12937, 46946, 44004, 48926, 48760, 14066, 11825, 28402, 27451, 12787, 49033, 46531, 36388, 29191, 43481, 28987, 41615, 27289, 37260, 32335, 47159, 28134, 13325, 39160, 34379, 27459, 35796, 48062, 37878, 27359, 41153, 42054, 13650, 12178, 31604, 11090, 12288, 31747, 27728, 46686, 49202, 42172, 12286, 14107, 32333, 43914, 27432, 37136, 28046, 27376, 43992, 48536, 45693, 10942, 42438, 31263, 39233, 30509, 41655, 30060, 11301, 41146, 48098, 27892, 31561, 42408, 11765, 47550, 12409, 49457, 47973, 43237, 48826, 49695, 40317, 42293, 48407, 43900, 11901, 41901, 31341, 41124, 34103, 39254, 49791, 40312, 42798, 26892, 37193, 42522, 11488, 36634, 12316, 27369, 39413, 31367, 46620, 48811, 37846, 31014, 40402, 37410, 36695, 48646, 42659, 34201, 46752, 36243, 42502, 29093, 36311, 11570, 47984, 32435, 13666, 46924, 35494, 47495, 49456, 49198, 42274, 45643, 40356, 48241, 31368, 46393, 43049, 13487, 37078, 49639, 30577, 29025, 30488, 13495, 13488, 43091, 44934, 28759, 11418, 36451, 12287, 29832, 46733, 11368, 30412, 49230, 49643, 38622, 49034, 42775, 37612, 27464, 12965, 46440, 40345, 42011, 37388, 30320, 29761, 13359, 35811, 29370, 43752, 48689, 41986, 48967, 12860, 32078, 40313, 36907, 11585, 34155, 41397, 11594, 43657, 28015, 42800, 39428, 11597, 46612, 47137, 41392, 43282, 40621, 47534, 48409, 11673, 11531, 29298, 12998, 34096, 28934, 10936, 44033, 46410, 11078, 31145, 26865, 13708, 13026, 10962, 42947, 46780, 28865, 47226, 27287, 43455, 29221, 39409, 42109, 31098, 49169, 43514, 47732, 37241, 28413, 43218, 30448, 49115, 28051, 29212, 37841, 42966, 46551, 48039, 32409, 37553, 39394, 43748, 31444, 48097, 30955, 11465, 46685, 42288, 43683, 26832, 12407, 41037, 49217, 46411, 46789, 11054, 48863, 34840, 12734, 40329, 32295, 47591, 42102, 47083, 28654, 32297, 30548, 44027, 31363, 27759, 36422, 46697, 40288, 36348, 40275, 40420, 47613, 31741, 41707, 12459, 37117, 47767, 26936, 30539, 42478, 42601, 14093, 49810, 48358, 36521, 47704, 42663, 46769, 41535, 34956, 12491, 42316, 36357, 35960, 34145, 42448, 12475, 30649, 47577, 12572, 42747, 43229, 12353, 41312, 34807, 40535, 29161, 11911, 29225, 48757, 42434, 13464, 31086, 42979, 12002, 36144, 42361, 30258, 27193, 28376, 31540, 47502, 11177, 28000, 40752, 26986, 26773, 34284, 41604, 12338, 30836, 12244, 40854, 36957, 30809, 48808, 40273, 34206, 40816, 27523, 46720, 36627, 48134, 37750, 47043, 30464, 34669, 40511, 34107, 42864, 29464, 43307, 37251, 30199, 11830, 28656, 47442, 43681, 13652, 42679, 40316, 29481, 30559, 35982, 42970, 41097, 41950, 30269, 40505, 29248, 43099, 47535, 33578, 34873, 12718, 47977, 48163, 41304, 46464, 11458, 40940, 11669, 42350, 47676, 46984, 13426, 37155, 43312, 27510, 47491, 30076, 47283, 36655, 47291, 49716, 49691, 31555, 12941, 35881, 44670, 48135, 11853, 40327, 34804, 13839, 46645, 28831, 47056, 39317, 42235, 26978, 41983, 34138, 36534, 42662, 41936, 45126, 47744, 30400, 27070, 46427, 13515, 29348, 27183, 42653, 47500, 35687, 47506, 28963, 13851, 40538, 12261, 34249, 29501, 35542, 29474, 12850, 26874, 12050, 41054, 47184, 29550, 34188, 11297, 39303, 37178, 43375, 28913, 40274, 40294, 31862, 47029, 27094, 30727, 47618, 30092, 40343, 29777, 29561, 27994, 42912, 28856, 47741, 13932, 39257, 31387, 46731, 36574, 47691, 43529, 47145, 30384, 47672, 13002, 41473, 42630, 48987, 26867, 46380, 42889, 40660, 42774, 27583, 40268, 41704, 34335, 42210, 42372, 31877, 40902, 27253, 11953, 37148, 11605, 34947, 27942, 31700, 29516, 45572, 40522, 48285, 47250, 47273, 43141, 36977, 12895, 26931, 47138, 40878, 43401, 43260, 26757, 36707, 48834, 49733, 43691, 36322, 27733, 11442, 36389, 42176, 43219, 49143, 46509, 11249, 34893, 27241, 13262, 46800, 31116, 47801, 42469, 42414, 40909, 47173, 13832, 31723, 12431, 47222, 31276, 30843, 28712, 30222, 36940, 49870, 41434, 41711, 48695, 48013, 30435, 50031, 37411, 46987, 50023, 42196, 40323, 12768, 42093, 27335, 34803, 37714, 34459, 47764, 27530, 47843, 41309, 40442, 49060, 42345, 47576, 13822, 45724, 48379, 46477, 40405, 49106, 37646, 12790, 28428, 13461, 29289, 13911, 42108, 40564, 29524, 30285, 36272, 48784, 28287, 43567, 41208, 40265, 43917, 47239, 42025, 49059, 37279, 29185, 12542, 46463, 34383, 12129, 35897, 13471, 28149, 11121, 41487, 30459, 46950, 37495, 13470, 43102, 49592, 49993, 40997, 37153, 47874, 48857, 41013, 42217, 47895, 28178, 12642, 47634, 49093, 28595, 40408, 13580, 34450, 41098, 41092, 34071, 29199, 11416, 48159, 31810, 43972, 37771, 44356, 48942, 41609, 31823, 11051, 48240, 40324, 13634, 34922, 30969, 47202, 46842, 42652, 47860, 27591, 47163, 44712, 47410, 36160, 47592, 31816, 26912, 46651, 36248, 26980, 40772, 11949, 31829, 36015, 12789, 38013, 34865, 13265, 49944, 43342, 41086, 47310, 47899, 13055, 37682, 27826, 49969, 37060, 40860, 11047, 27174, 42910, 31833, 49811, 30021, 43497, 27462, 37248, 42732, 40525, 49391, 47406, 13053, 13114, 40915, 28130, 36637, 29336, 28221, 40636, 12839, 34372, 42935, 48899, 46587, 30650, 37653, 40704, 13927, 42024, 47530, 32048, 34770, 49497, 27352, 31334, 12553, 36647, 42043, 41372, 40347, 30939, 43206, 13925, 37608, 30289, 29319, 46414, 32053, 35521, 40887, 31457, 30913, 41959, 47560, 43170, 13685, 13247, 40477, 32145, 27052, 44682, 40719, 39155, 36900, 41691, 41670, 34263, 31117, 49006, 46816, 11022, 47653, 31395, 28095, 42060, 14016, 28244, 30502, 48713, 37425, 26907, 12039, 48048, 42526, 34283, 45736, 31228, 40720, 40673, 33497, 34353, 30248, 46381, 31223, 49365, 40627, 30963, 40692, 27188, 36573, 36022, 40625, 12527, 28737, 34961, 47132, 30715, 47176, 48288, 34295, 48396, 27749, 29730, 36414, 42642, 26831, 28766, 49637, 11936, 49999, 13785, 36582, 32357, 34834, 47321, 34287, 12649, 43570, 36118, 37113, 34593, 34239, 40513, 42514, 30262, 27198, 47162, 37147, 43758, 41592, 27539, 39539, 37573, 37631, 47492, 40314, 32379, 40608, 43981, 31308, 42582, 28726, 47585, 40623, 12920, 13431, 28100, 31074, 37415, 34764, 43215, 13687, 29323, 47498, 32014, 47057, 31298, 30695, 40907, 46479, 37264, 11983, 13317, 41701, 46776, 47217, 48852, 49769, 42023, 43995, 49249, 41317, 43955, 29618, 39264, 48920, 36982, 27761, 37435, 36435, 30389, 50059, 46803, 36149, 30187, 48791, 47924, 40810, 26851, 37526, 42188, 27434, 37452, 43256, 34079, 11981, 43922, 47754, 42782, 40761, 13279, 30768, 31030, 34080, 48886, 32043, 47349, 42756, 46770, 40382, 13741, 40767, 46369, 27114, 47401, 42251, 27203, 34872, 43512, 40787, 31496, 27120, 42356, 13226, 34767, 47231, 12434, 49518, 47168, 36948, 12143, 40413, 43556, 12813, 31410, 34929, 29665, 27557, 40929, 31461, 26845, 44641, 44388, 32206, 13919, 11455, 35699, 48021, 13393
## 6 47207, 11295, 37764, 12130, 13036, 32119, 41908, 11277, 11275, 42600, 35809, 32108, 35525, 40532, 38126, 12393, 49703, 28723, 38930, 40750, 30803, 42915, 40289, 28102, 43551, 37109, 31050, 47582, 40697, 29369, 31973, 43096, 34448, 49014, 10969, 45199, 30600, 32004, 12743, 28481, 11767, 12255, 48511, 42136, 13898, 40656, 40582, 47555, 34784, 30604, 49088, 26900, 42821, 36299, 46883, 30396, 40429, 47474, 38081, 29334, 46347, 28686, 40311, 36319, 27112, 43406, 12229, 42961, 13589, 40893, 35519, 11786, 13269, 27657, 31282, 43380, 30465, 42609, 47476, 13507, 48985, 26889, 41058, 12226, 48934, 40440, 44784, 41948, 28542, 12465, 11207, 47416, 43400, 40649, 49941, 12730, 45047, 46593, 27149, 40886, 37920, 43262, 11085, 13748, 29773, 34422, 42415, 49016, 38961, 48151, 44717, 38368, 45619, 45703, 48111, 41139, 31773, 12092, 37427, 49899, 45710, 47096, 46687, 42768, 41239, 38332, 41638, 42712, 40695, 37324, 48064, 30410, 42786, 42711, 12829, 47811, 47105, 37006, 48940, 42674, 43159, 40698, 43222, 34814, 27133, 36887, 42309, 34813, 12156, 26810, 46534, 37743, 12613, 46554, 40652, 38944, 49201, 47454, 47897, 37589, 27003, 31320, 43545, 37444, 47260, 26793, 13686, 47326, 49085, 37361, 27330, 42195, 47153, 47927, 31551, 31580, 48373, 11199, 11612, 49750, 37787, 47143, 43450, 46900, 30141, 41201, 49775, 13022, 48797, 30377, 48858, 43034, 44369, 12454, 46975, 43253, 27504, 42785, 41222, 34832, 35967, 12671, 11763, 39002, 43739, 12155, 34067, 11282, 48167, 37192, 27366, 49565, 11178, 11724, 13820, 49512, 49838, 46445, 29303, 31897, 11791, 30599, 47735, 37457, 13572, 48869, 30200, 46706, 43898, 35476, 47677, 40769, 12336, 11102, 48161, 48070, 47133, 42682, 31006, 42525, 12723, 47580, 14065, 41379, 45019, 12425, 29580, 40380, 31906, 14031, 42128, 34927, 43278, 12937, 46946, 44004, 48926, 48760, 14066, 11825, 28402, 27451, 12787, 49033, 46531, 36388, 29191, 43481, 28987, 41615, 27289, 37260, 32335, 47159, 28134, 13325, 39160, 34379, 27459, 35796, 48062, 37878, 27359, 41153, 42054, 13650, 12178, 31604, 11090, 12288, 31747, 27728, 46686, 49202, 42172, 12286, 14107, 32333, 43914, 27432, 37136, 28046, 27376, 43992, 48536, 45693, 10942, 42438, 31263, 39233, 30509, 41655, 30060, 11301, 41146, 48098, 27892, 31561, 42408, 11765, 47550, 12409, 49457, 47973, 43237, 48826, 49695, 40317, 42293, 48407, 43900, 11901, 41901, 31341, 41124, 34103, 39254, 49791, 40312, 42798, 26892, 37193, 42522, 11488, 36634, 12316, 27369, 39413, 31367, 46620, 48811, 37846, 31014, 40402, 37410, 36695, 48646, 42659, 34201, 46752, 36243, 42502, 36650, 29093, 36311, 11570, 47984, 32435, 13666, 46924, 35494, 47495, 49456, 49198, 42274, 45643, 40356, 48241, 31368, 46393, 43049, 13487, 37078, 49639, 30577, 29025, 30488, 13495, 13488, 43091, 44934, 28759, 11418, 36451, 12287, 29832, 46733, 11368, 30412, 49230, 49643, 38622, 49034, 42775, 37612, 27464, 12965, 46440, 40345, 42011, 37388, 30320, 29761, 13359, 35811, 29370, 43752, 48689, 41986, 48967, 12860, 32078, 40313, 36907, 11585, 34155, 41397, 11594, 43657, 28015, 42800, 39428, 11597, 46612, 47137, 41392, 43282, 40621, 47534, 48409, 11673, 11531, 29298, 12998, 34096, 28934, 10936, 44033, 46410, 11078, 31145, 26865, 13708, 13026, 10962, 42947, 46780, 28865, 47226, 27287, 43455, 29221, 39409, 42109, 31098, 49169, 43514, 47732, 37241, 28413, 49714, 43218, 30448, 49115, 28051, 29212, 37841, 42966, 46551, 48039, 32409, 37553, 39394, 43748, 31444, 30955, 11465, 46685, 42288, 43683, 26832, 12407, 41037, 49217, 46411, 46789, 11054, 48863, 34840, 12734, 40329, 32295, 47591, 42102, 47083, 28654, 32297, 30548, 44027, 31363, 27759, 36422, 46697, 40288, 36348, 40275, 40420, 47613, 31741, 41707, 12459, 37117, 47767, 26936, 30539, 42478, 42601, 14093, 49810, 48358, 36521, 47704, 42663, 46769, 41535, 34956, 12491, 42316, 36357, 35960, 34145, 42448, 12475, 30649, 47577, 12572, 42747, 43229, 12353, 41312, 34807, 40535, 29161, 11911, 30433, 29225, 48757, 42434, 13464, 31086, 42979, 12002, 36144, 42361, 30258, 27193, 28376, 31540, 47502, 11177, 28000, 40752, 26986, 26773, 34284, 41604, 12338, 30836, 12244, 40854, 36957, 30580, 30809, 48808, 40273, 34206, 40816, 27523, 46720, 36627, 48134, 37750, 47043, 30464, 34669, 40511, 34107, 42864, 29464, 37251, 30199, 11830, 28656, 47442, 43681, 13652, 42679, 40316, 29481, 30559, 35982, 42970, 41097, 41950, 30269, 40505, 29248, 43099, 47535, 33578, 34873, 12718, 47977, 48163, 41304, 46464, 11458, 40940, 11669, 42350, 47676, 46984, 13426, 37155, 43312, 27510, 47491, 30076, 47283, 36655, 47291, 49716, 31555, 12941, 35881, 44670, 48135, 33139, 11853, 40327, 34804, 13839, 46645, 28831, 47056, 39317, 42235, 26978, 41983, 34138, 36534, 42662, 41936, 45126, 48845, 47744, 30400, 27070, 46427, 13515, 29348, 27183, 42653, 47500, 35687, 47506, 28963, 13851, 40538, 12261, 34249, 29501, 35542, 29474, 12850, 26874, 12050, 41054, 47184, 29550, 34188, 11297, 39303, 37178, 43375, 28913, 40274, 40294, 31862, 47029, 27094, 30727, 30092, 40343, 29777, 29561, 27994, 42912, 28856, 47741, 13932, 39257, 31387, 46731, 36574, 47691, 43529, 47145, 30384, 47672, 13002, 41473, 42630, 48987, 26867, 46380, 31325, 42889, 40660, 42774, 27583, 49556, 41704, 34335, 42210, 42372, 31877, 40902, 27253, 11953, 37148, 11605, 34947, 27942, 31700, 29516, 45572, 40522, 48285, 47250, 40367, 47273, 43141, 12895, 26931, 47138, 43401, 43260, 26757, 36707, 48834, 49733, 43691, 36322, 27733, 11442, 36389, 42176, 43219, 49143, 46509, 11249, 34893, 27241, 13262, 46800, 31116, 47801, 42469, 42414, 40909, 47173, 13832, 31723, 12431, 47222, 31276, 30843, 28712, 42330, 41199, 30222, 36940, 49870, 41434, 41711, 48695, 48013, 30435, 50031, 37411, 46987, 50023, 42196, 12768, 42093, 27335, 34803, 37714, 34459, 47764, 27530, 47843, 41309, 40442, 49060, 42345, 47576, 13822, 45724, 48379, 46477, 40405, 49106, 37646, 12790, 28428, 13461, 29289, 13911, 42108, 40564, 29524, 30285, 36272, 48784, 28287, 43567, 41208, 40265, 43917, 47239, 42025, 30709, 49059, 37279, 29185, 12542, 46463, 34383, 12129, 35897, 13471, 28149, 11121, 41487, 30459, 46950, 37495, 13470, 43102, 49592, 49993, 40997, 37153, 47874, 48857, 41013, 42217, 42750, 47895, 28178, 12642, 47634, 49093, 28595, 40408, 47054, 13580, 34450, 41098, 41092, 34071, 49330, 29199, 11416, 48159, 31810, 43972, 37771, 44356, 48942, 41609, 31823, 11051, 48240, 40324, 13634, 34922, 30969, 47202, 46842, 42652, 47860, 27591, 47163, 44712, 47410, 36160, 47592, 31816, 26912, 46651, 36248, 26980, 40772, 11949, 31829, 12789, 38013, 34865, 13265, 49944, 43342, 41086, 47310, 47899, 13055, 37682, 27826, 49969, 37060, 40860, 11047, 27174, 42910, 31833, 49811, 30021, 43497, 27462, 48084, 37248, 42732, 40525, 49391, 47406, 13053, 13114, 40915, 28130, 36637, 29336, 28221, 40636, 12839, 34372, 48899, 46587, 30650, 37653, 40704, 13927, 42024, 47530, 32048, 34770, 49497, 27352, 31334, 12553, 36647, 42043, 41372, 40347, 30939, 43206, 13925, 37608, 30289, 29319, 46414, 35521, 40887, 31457, 30913, 41959, 47560, 43170, 13685, 13247, 40477, 32145, 27052, 44682, 40719, 39155, 36900, 41691, 41670, 34263, 31117, 49006, 46816, 11022, 47653, 31395, 28095, 42060, 14016, 28244, 30502, 48713, 37425, 26907, 12039, 48048, 42526, 34283, 45736, 31228, 40720, 40673, 33497, 34353, 30248, 46381, 31223, 49365, 40627, 30963, 40692, 27188, 36573, 36022, 40625, 12527, 28737, 34961, 47132, 30715, 47176, 48288, 34295, 48396, 27749, 29730, 36414, 30626, 42642, 43417, 26831, 28766, 49637, 11936, 49999, 13785, 36582, 32357, 34834, 47321, 34287, 12649, 43570, 36118, 37113, 34593, 34239, 40513, 42514, 30262, 27198, 47162, 37147, 43758, 41592, 27539, 39539, 37573, 37631, 47492, 40314, 32379, 40608, 43981, 31308, 42582, 28726, 47585, 40623, 12920, 13431, 28100, 31074, 37415, 34764, 43215, 13687, 29323, 47498, 32014, 47057, 30695, 40907, 46479, 37264, 11983, 13317, 41701, 46776, 47217, 48852, 49769, 42023, 43995, 49249, 41317, 43955, 29618, 39264, 48920, 36982, 27761, 37435, 36435, 30389, 50059, 46803, 36149, 30187, 48791, 47924, 40810, 26851, 37526, 42188, 27434, 37452, 43256, 34079, 11981, 43922, 47754, 42782, 40761, 13279, 30768, 31030, 34080, 48886, 32043, 47349, 42756, 46770, 40382, 13741, 40767, 46369, 27114, 47401, 42251, 27203, 34872, 43512, 40787, 31496, 27120, 42356, 13226, 34767, 47231, 12434, 49518, 47168, 36948, 12143, 40413, 43556, 12813, 31410, 34929, 29665, 27557, 40929, 31076, 26845, 44641, 44388, 32206, 13919, 11455, 35699, 48021, 13393
## 7 47207, 11295, 37764, 12130, 13036, 41908, 11277, 11275, 42600, 35809, 32108, 35525, 40532, 38126, 12393, 49703, 28723, 38930, 40750, 30803, 42915, 40289, 28102, 43551, 37109, 31050, 47582, 40697, 29369, 31973, 43096, 34448, 10969, 45199, 30600, 32004, 12743, 28481, 11767, 12255, 48511, 42136, 13898, 40656, 40582, 47555, 34784, 30604, 49088, 26900, 42821, 36299, 46883, 30396, 40429, 47474, 38081, 29334, 46347, 28686, 40311, 36319, 27112, 43406, 12229, 42961, 13589, 40893, 35519, 11786, 13269, 27657, 31282, 43380, 30465, 42609, 47476, 13507, 48985, 26889, 41058, 12226, 48934, 40440, 44784, 41948, 28542, 12465, 11207, 47416, 43400, 40649, 49941, 12730, 45047, 27149, 40886, 37920, 43262, 11085, 13748, 29773, 34422, 42415, 49016, 38961, 48151, 38368, 45619, 45703, 48111, 41139, 31773, 12092, 37427, 49899, 45710, 47096, 46687, 42768, 41239, 38332, 41638, 42712, 40695, 37324, 48064, 30410, 42786, 42711, 12829, 47105, 37006, 48940, 42674, 43159, 40698, 43222, 34814, 27133, 36887, 42309, 34813, 12156, 26810, 46534, 37743, 12613, 46554, 40652, 38944, 49201, 47454, 47897, 37589, 27003, 31320, 43545, 37444, 47260, 26793, 13686, 47326, 37361, 27330, 42195, 47153, 47927, 31551, 31580, 48373, 11199, 11612, 49750, 37787, 47143, 43450, 46900, 30141, 41201, 49775, 13022, 48797, 30377, 48858, 43034, 44369, 12454, 46975, 27504, 42785, 41222, 34832, 35967, 12671, 11763, 39002, 43739, 12155, 34067, 11282, 48167, 37192, 27366, 49565, 11178, 11724, 13820, 49512, 49838, 46445, 29303, 31897, 11791, 30599, 47735, 37457, 13572, 48869, 30200, 46706, 43898, 35476, 47677, 40769, 12336, 11102, 48161, 48070, 47133, 42682, 31006, 42525, 12723, 47580, 14065, 41379, 45019, 12425, 29580, 40380, 31906, 14031, 42128, 34927, 12937, 46946, 44004, 48926, 48760, 14066, 11825, 28402, 27451, 12787, 49033, 46531, 36388, 29191, 43481, 28987, 41615, 27289, 37260, 32335, 47159, 28134, 13325, 39160, 34379, 27459, 35796, 48062, 37878, 27359, 41153, 42054, 13650, 12178, 31604, 11090, 12288, 31747, 27728, 46686, 49202, 42172, 12286, 14107, 32333, 43914, 27432, 37136, 28046, 27376, 43992, 48536, 45693, 10942, 42438, 31263, 39233, 30509, 41655, 30060, 11301, 41146, 48098, 27892, 11765, 47550, 12409, 49457, 47973, 43237, 48826, 49695, 42293, 48407, 43900, 11901, 41901, 31341, 34103, 39254, 49791, 40312, 42798, 26892, 37193, 42522, 11488, 36634, 12316, 27369, 39413, 46620, 48811, 37846, 31014, 40402, 37410, 36695, 48646, 42659, 34201, 46752, 36243, 42502, 36650, 29093, 36311, 11570, 47984, 32435, 13666, 46924, 35494, 47495, 49456, 49198, 42274, 45643, 48241, 31368, 46393, 43049, 13487, 37078, 49639, 30577, 29025, 30488, 13495, 13488, 43091, 44934, 28759, 11418, 36451, 12287, 29832, 46733, 11368, 30412, 49230, 49643, 38622, 49034, 42775, 37612, 27464, 12965, 46440, 40345, 42011, 37388, 30320, 29761, 13359, 35811, 29370, 43752, 48689, 41986, 48967, 12860, 32078, 40313, 36907, 11585, 34155, 41397, 11594, 43657, 28015, 42800, 39428, 11597, 46612, 47137, 41392, 43282, 40621, 47534, 48409, 11673, 11531, 29298, 12998, 34096, 28934, 10936, 44033, 46410, 11078, 31145, 26865, 13708, 13026, 10962, 42947, 46780, 28865, 47226, 27287, 43455, 29221, 39409, 42109, 31098, 49169, 43514, 47732, 37241, 28413, 49714, 30448, 49115, 28051, 29212, 37841, 42966, 46551, 48039, 32409, 37553, 39394, 43748, 31444, 48097, 30955, 11465, 46685, 42288, 43683, 26832, 12407, 41037, 49217, 46411, 46789, 11054, 48863, 34840, 12734, 40329, 32295, 47591, 42102, 47083, 28654, 32297, 30548, 44027, 31363, 27759, 36422, 46697, 40288, 36348, 40275, 40420, 47613, 31741, 41707, 12459, 37117, 47767, 26936, 30539, 42478, 42601, 14093, 48358, 36521, 47704, 42663, 46769, 41535, 34956, 12491, 42316, 36357, 35960, 34145, 42448, 12475, 30649, 47577, 12572, 42747, 43229, 12353, 41312, 34807, 40535, 29161, 11911, 30433, 29225, 48757, 42434, 13464, 31086, 12002, 36144, 42361, 30258, 27193, 28376, 31540, 47502, 11177, 28000, 40752, 26986, 26773, 34284, 41604, 12338, 30836, 12244, 40854, 36957, 30580, 30809, 48808, 40273, 34206, 40816, 27523, 46720, 36627, 48134, 37750, 47043, 30464, 34669, 40511, 34107, 42864, 29464, 43307, 37251, 30199, 11830, 28656, 47442, 43681, 13652, 42679, 29481, 30559, 35982, 42970, 41097, 41950, 30269, 40505, 29248, 43099, 47535, 33578, 34873, 12718, 47977, 48163, 41304, 46464, 11458, 40940, 11669, 42350, 47676, 46984, 13426, 37155, 43312, 27510, 47491, 30076, 47283, 36655, 47291, 49716, 49691, 12941, 35881, 44670, 48135, 33139, 11853, 40327, 34804, 13839, 46645, 28831, 47056, 39317, 42235, 26978, 41983, 34138, 36534, 42662, 41936, 45126, 48845, 47744, 30400, 27070, 46427, 13515, 29348, 27183, 42653, 47500, 35687, 47506, 28963, 13851, 40538, 12261, 34249, 29501, 35542, 29474, 12850, 26874, 12050, 41054, 47184, 29550, 34188, 11297, 39303, 37178, 43375, 28913, 40274, 40294, 31862, 47029, 27094, 30727, 47618, 30092, 40343, 29777, 29561, 27994, 42912, 28856, 47741, 13932, 39257, 31387, 46731, 36574, 43529, 47145, 30384, 47672, 13002, 41473, 42630, 48987, 26867, 46380, 31325, 42889, 40660, 42774, 27583, 40268, 49556, 41704, 34335, 42210, 42372, 40902, 27253, 11953, 37148, 11605, 34947, 27942, 31700, 29516, 45572, 40522, 48285, 47250, 40367, 47273, 43141, 36977, 12895, 26931, 47138, 40878, 43401, 43260, 26757, 36707, 48834, 49733, 43691, 36322, 27733, 11442, 36389, 42176, 43219, 49143, 46509, 11249, 34893, 27241, 13262, 46800, 31116, 47801, 42469, 42414, 40909, 47173, 13832, 31723, 12431, 47222, 31276, 30843, 28712, 42330, 41199, 30222, 36940, 49870, 41434, 41711, 48695, 30435, 50031, 37411, 46987, 50023, 42196, 40323, 12768, 42093, 27335, 34803, 37714, 34459, 47764, 27530, 47843, 41309, 40442, 49060, 42345, 47576, 13822, 45724, 48379, 46477, 40405, 49106, 37646, 12790, 28428, 13461, 29289, 13911, 42108, 40564, 29524, 30285, 36272, 48784, 28287, 43567, 41208, 40265, 43917, 47239, 42025, 30709, 49059, 37279, 29185, 12542, 34383, 12129, 35897, 13471, 28149, 11121, 41487, 30459, 46950, 37495, 13470, 43102, 49592, 49993, 40997, 37153, 47874, 48857, 41013, 42217, 42750, 47895, 28178, 12642, 47634, 49093, 28595, 40408, 47054, 13580, 34450, 41098, 41092, 34071, 49330, 29199, 11416, 48159, 31810, 43972, 37771, 44356, 48942, 41609, 31823, 11051, 48240, 40324, 13634, 34922, 30969, 47202, 46842, 42652, 47860, 27591, 47163, 44712, 47410, 36160, 47592, 31816, 26912, 46651, 36248, 26980, 40772, 11949, 31829, 36015, 12789, 38013, 34865, 13265, 49944, 43342, 47310, 47899, 13055, 37682, 27826, 49969, 37060, 40860, 11047, 27174, 42910, 31833, 49811, 30021, 43497, 27462, 48084, 42732, 40525, 49391, 47406, 13053, 13114, 40915, 28130, 36637, 29336, 28221, 40636, 12839, 34372, 42935, 48899, 46587, 30650, 37653, 40704, 13927, 42024, 47530, 32048, 34770, 49497, 27352, 31334, 12553, 36647, 42043, 41372, 40347, 30939, 43206, 13925, 37608, 30289, 29319, 46414, 32053, 35521, 40887, 31457, 30913, 41959, 47560, 43170, 13685, 13247, 40477, 32145, 27052, 44682, 40719, 39155, 36900, 41691, 41670, 34263, 31117, 46816, 11022, 47653, 31395, 28095, 42060, 14016, 28244, 30502, 48713, 37425, 26907, 12039, 48048, 42526, 34283, 45736, 31228, 40720, 40673, 33497, 34353, 30248, 46381, 31223, 49365, 40627, 30963, 40692, 27188, 36573, 36022, 40625, 12527, 28737, 34961, 47132, 30715, 47176, 48288, 34295, 48396, 27749, 29730, 36414, 30626, 42642, 43417, 26831, 28766, 49637, 11936, 49999, 13785, 36582, 32357, 34834, 47321, 34287, 12649, 43570, 36118, 37113, 34593, 34239, 40513, 42514, 30262, 27198, 47162, 37147, 43758, 41592, 27539, 39539, 37573, 37631, 47492, 40314, 32379, 40608, 43981, 31308, 42582, 28726, 47585, 40623, 12920, 13431, 28100, 31074, 37415, 34764, 43215, 13687, 29323, 47498, 32014, 31298, 30695, 40907, 46479, 37264, 11983, 13317, 41701, 46776, 47217, 48852, 49769, 42023, 43995, 49249, 41317, 43955, 29618, 39264, 48920, 36982, 27761, 37435, 30389, 50059, 46803, 36149, 30187, 48791, 47924, 40810, 26851, 37526, 42188, 27434, 37452, 43256, 34079, 11981, 43922, 47754, 42782, 40761, 13279, 30768, 31030, 34080, 48886, 32043, 47349, 46770, 40382, 13741, 40767, 46369, 27114, 47401, 42251, 27203, 34872, 43512, 40787, 31496, 27120, 42356, 13226, 34767, 47231, 12434, 49518, 47168, 36948, 12143, 40413, 43556, 12813, 31410, 34929, 29665, 27557, 40929, 31076, 31461, 26845, 44641, 44388, 32206, 13919, 11455, 35699, 48021, 13393
## gfams_excl_b
## 2 32189, 46610, 35940, 31758, 32796, 10810, 9834, 10196, 35822, 37256, 32438, 10697, 30732, 32514, 43268, 31849, 43161, 49903, 36143, 41156, 44535, 42283, 45180, 33150, 36114, 10003, 48900, 9828, 49415, 50007, 45160, 43167, 30615, 45188, 36244, 33624, 37701, 42157, 30877, 32684, 33610, 36040, 33858, 30805, 49112, 44472, 46907, 46755, 42856, 40571, 30525, 10255, 31360, 33801, 31144, 46511, 32455, 31858, 47892, 36651, 40350, 30369, 42714, 36139, 43224, 41103, 42708, 41154, 9768, 44783, 47882, 44672, 46822, 36137, 9908, 36494, 37321, 36715, 32808, 10135, 31188, 31699, 9855, 32999, 36332, 40281, 10376, 37102, 46695, 10674, 43210, 41221, 46722, 33860, 10286, 47084, 33170, 10115, 33829, 31272, 42264, 30487, 36953, 49662, 44894, 42013, 44143, 49598, 30653, 42661, 30375, 10275, 36517, 35935, 36714, 36991, 30516, 31642, 31472, 31445, 42313, 46669, 10060, 49609, 47943, 33051, 41082, 46684, 45009, 43019, 36565, 44953, 42546, 40548, 40967, 44305, 10192, 30831, 41120, 33162, 9975, 33190, 10162, 10655, 31558, 10261, 36406, 41115, 10588, 36833, 49105, 49281, 30361, 31681, 49725, 42853, 30795, 42887, 47842, 36003, 32129, 33142, 45063, 32543, 36024, 47360, 42386, 10401, 33705, 33872, 43480, 33460, 33284, 48590, 10652, 32901, 36929, 10501, 35885, 36387, 42933, 49030, 44800, 10068, 10232, 32275, 32530, 47357, 36331, 33790, 36922, 45046, 32742, 42269, 43486, 36580, 31252, 47988, 31953, 31394, 9814, 10293, 41204, 10149, 42107, 10215, 10194, 44464, 36920, 36992, 47024, 35807, 42681, 41202, 33661, 33719, 30319, 32622, 30556, 45039, 43095, 30409, 43897, 10268, 45051, 42122, 49744, 10008, 43089, 40271, 37005, 9781, 42064, 42271, 44860, 43483, 36782, 31743, 49067, 44440, 49061, 31362, 42804, 49636, 40554, 33548, 31267, 36826, 44224, 33225, 44933, 48116, 30629, 35681, 46799, 30493, 31105, 49072, 42799, 49185, 36397, 42825, 46658, 30868, 32689, 31141, 40459, 47730, 31112, 43273, 10889, 42938, 30737, 42619, 43482, 31302, 33308, 44251, 48437, 42404, 10193, 33032, 40729, 36427, 31092, 46363, 32151, 48988, 32659, 10359, 36117, 31952, 31908, 46903, 35911, 43362, 48002, 47816, 46625
## 3 37543, 47917, 48381, 10532, 33448, 48567, 36512, 49580, 32773, 32057, 10320, 10071, 46450, 49358, 9855, 10316, 31383, 36471, 49850, 9883, 41436, 47315, 42991, 31799, 48395, 31342, 42540, 31878, 49433, 41891, 43043, 48839, 42027, 36664, 10432, 10831, 40745, 42553, 10830, 44906, 49173, 33080, 33981, 30304, 41217, 41027, 31177, 31981, 31459, 10262, 43290, 46865, 42097, 33456, 40672, 32775, 41089, 30437, 32643, 33580, 33431, 37018, 32842, 33382, 31917, 37099, 48983, 32567, 40970, 48089, 46395, 36838, 31839, 46426, 36598, 10259, 49074, 40765, 41984, 35856, 46568, 36169, 31451, 31557, 9834, 49577, 10446, 48756, 36639, 46726, 46429, 40424, 10105, 10489, 48625, 48521, 40913, 33349, 47903, 49119, 48415, 41170, 49765, 32036, 10844, 46909, 36307, 9900, 36744, 43970, 46866, 49392, 48854, 49955, 47025, 44637, 9780, 33235, 10785, 36278, 41178, 30634, 49694, 36635, 34050, 46581, 9869, 45061, 36429, 46942, 33111, 10817, 49762, 35904, 33016, 40630, 30943, 43394, 36232, 31589, 37218, 10260, 32617, 49239, 10230, 46818, 46945, 48526, 33185, 45157, 33839, 33391, 41529, 9999, 40419, 10616, 34214, 41885, 30349, 40841, 32307, 40809, 33394, 33509, 34053, 36337, 37034, 43138, 47658, 10777, 47125, 10833, 31221, 46621, 40264, 43012, 49848, 30583, 49439, 33449, 48575, 41214, 35977, 49943, 49079, 47919, 47687, 41433, 43929, 41007, 43402, 9874, 49399, 36378, 41121, 31942, 30822, 10756, 31132, 43978, 49740, 32867, 46784, 33253, 32076, 36995, 9994, 10275, 40258, 30766, 44998, 41047, 48426, 48386, 31018, 37055, 33395, 46905, 41106, 37144, 49554, 31313, 36253, 44955, 49857, 49283, 31499, 33475, 49302, 48376, 36099, 36643, 46940, 36866, 32954, 47339, 39302, 31011, 33347, 45214, 49056, 33371, 32924, 10345, 40502, 45069, 43071, 36441, 9838, 37603, 37204, 42104, 36839, 42377, 40851, 44824, 33278, 33189, 41064, 48842, 36148, 33096, 36235, 48648, 34020, 30826, 36810, 30747, 31941, 40988, 43163, 30806, 9847, 49116, 42664, 31849, 30211, 9816, 30218, 42266, 9769, 30902, 33826, 46630, 47241, 42324, 32890, 49653, 40771, 43301, 31772, 30371, 36328, 9793, 49561, 40995, 10475, 46358, 40514, 49912, 10873
## 4 37216, 31005, 43143, 45186, 43392, 9867, 36944, 10295, 41993, 49458, 37183, 31101, 48762, 33940, 40655, 44379, 9834, 10108, 36516, 30752, 42367, 47963, 45135, 40694, 49082, 47587, 49131, 9904, 30910, 37013, 42047, 48664, 43425, 10740, 40410, 10382, 33280, 30735, 40529, 31052, 9855, 9774, 10071, 33896, 41025, 49371, 33864, 42399, 31294, 46719, 10275, 36059, 41147, 40762, 49469, 30436, 46978, 44880, 10141, 9968, 49165, 46538, 47437, 49698, 30886, 42932, 31610, 36371, 47827, 46881, 48870, 33029, 31940, 9797, 49314, 49098, 36989, 42199, 40404, 31245, 41224, 48976, 47522, 46585, 32921, 47380, 49826, 48400, 49448, 35812, 36736, 47174, 48605, 46947, 47663, 43905, 10800, 10853, 48374, 40706, 48731, 32012, 30202, 36510, 48544, 49723, 36966, 40575, 48422, 42967, 31885, 31159, 31346, 44928, 44593, 41122, 35816, 49203, 46498, 40480, 34041, 30326, 44355, 40963, 36525, 47715, 40707, 46923, 30978, 40436, 48469, 48357, 30558, 37125, 42151, 49386, 32324, 47178, 44900, 33342, 49341, 31198, 31931, 9860, 47841, 47011, 31385, 47690, 31021, 40583, 33094, 48875, 36780, 48768, 30676, 48102, 45202, 49601, 48655, 47667, 46963, 40642, 36333, 48758, 10214, 41910, 10181, 31254, 41373, 42081, 42033, 31556, 36161, 47648, 36300, 9942, 33434, 43484, 31253, 10751, 36724, 48954, 44318, 31353, 40414, 48125, 49413, 30700, 48727, 36929, 31189, 33474, 10120, 41066, 40555, 32209, 32557, 35971, 40830, 32019, 10453, 32729, 46555, 31808, 47639, 44948, 49756, 48829, 45104, 46355, 41927, 42169, 36912, 38028, 43431, 9897, 46571, 43467, 10798, 42225, 40510, 48405, 32066, 32619, 32298, 31502, 37349, 42584, 36734, 47381, 31732, 36727, 36544, 40664, 48925, 36820, 33193, 32719, 33064, 32681, 48827, 10259, 47295, 43367, 42419, 49620, 49479, 47776, 48812, 49724, 33538, 47390, 33912, 10828, 43940, 36543, 32628, 36286, 47453, 48838, 10313, 46452, 47215, 32763, 49127, 36185, 42002, 30217, 49780, 30447, 31788, 44945, 46594, 32645, 47809, 40774, 43233, 31103, 47444, 42160, 46560, 10756, 37128, 46982, 44085, 37306, 43354, 10251, 49122, 49696, 43926, 40644, 30536, 43472, 43319, 33530, 49471, 37094, 30991, 30901, 37176, 42605, 36565, 48118, 9826, 48889, 33679, 33573, 36681, 36958, 36155, 42878, 46939, 47953, 44905, 48401, 30402, 48816, 48612, 49547, 33412, 46562, 49049, 31186, 30245, 10898, 32896, 32943, 47135, 42034, 35853, 34741, 10000, 32787, 30209, 35867, 36287, 47775, 41094, 31415, 47024, 33090, 35924, 46394, 9869, 46771, 42994, 10536, 49778, 42428, 33854, 49546, 33888, 48431, 33736, 30618, 49806, 30395, 46763, 49408, 42491, 49271, 36700, 33415, 30510, 43264, 46896, 49731, 33228, 47150, 49815, 33358, 30482, 49015, 31867, 49181, 47142, 30355, 44431, 37233, 33822, 46497, 44324, 37299, 40661, 46974, 42812, 46456, 33865, 31130, 31873, 46815, 43078, 46819, 33739, 31205, 49752, 49726, 36298, 48895, 42960, 31283, 33508, 33480, 40945, 10586, 41230, 49502, 36791, 30487, 48662, 48035, 47923, 40563, 10419, 36581, 36317, 49146, 42543, 37028, 47980, 10874, 9772, 45110, 36708, 48638, 49528, 36193, 42784, 49623, 37916, 46880, 33978, 49947, 47671, 32564, 47515, 32447, 30931, 33612, 32029, 10839, 49839, 47347, 40659, 47499, 47604, 30225, 32956, 32040, 36766, 48490, 31836, 31981, 10854, 36194, 31482, 10506, 36916, 36984, 49038, 37274, 44923, 36880, 31259, 48908, 10819, 32959, 45107, 36509, 48044, 44912, 10886, 10909, 48129, 10051, 48377, 33820, 43268, 48479, 32818, 50001, 43058, 31351, 48550, 37269, 30223, 37069, 32362, 31474, 31127, 47752, 49046, 49267, 44946, 46928, 44883, 30627, 46708, 37242, 49977, 10816, 31831, 40674, 31319, 46753, 31179, 31619, 46716, 37036, 46908, 36660, 48718, 31003, 40743, 48888, 43024, 48581, 32433, 36856, 36947, 44715, 30278, 47336, 40639, 46362, 32374, 47711
## 5 49499, 40748, 30420, 37203, 48906, 31248, 47061, 36242, 10208, 49978, 40742, 40616, 48141, 37243, 43999, 31131, 10261, 48184, 48911, 41166, 30254, 10593, 32631, 40336, 30231, 42181, 37154, 41165, 40911, 49210, 43263, 37331, 10071, 49052, 41070, 9855, 31348, 46432, 48606, 37107, 32522, 47996, 47652, 40296, 46696, 37106, 33797, 46849, 46874, 49287, 47662, 31870, 37315, 9777, 41012, 42365, 49858, 47828, 31172, 36190, 36814, 35961, 49583, 43598, 43325, 9834, 41090, 10312, 30941, 10281, 33617, 10046, 49343, 36990, 10254, 41181, 31354, 46873, 10147, 49245, 43207, 46507, 49949, 48805, 49545, 48946, 30540, 47449, 10275, 47086, 49145, 48478, 42579, 42616, 41049, 30469, 40546, 49418, 37312, 41387, 49475, 41111, 42411, 30837, 46425, 9925, 42391, 46843, 42865, 42094, 37194, 30621, 9788, 49642, 49398, 9813, 42360, 31004, 33386, 49057, 10128, 48362, 44043, 41301, 40670, 44707, 10218, 41125, 10472, 30422, 33583, 41206, 49690, 30335, 30513, 48592, 42560, 46767, 30748, 41006, 36685, 31475, 47986, 36182, 43884, 9942, 32973, 32354, 40259, 10207, 10728, 48014, 48709, 42474, 32992, 45144, 41152, 43338, 10198, 47845, 36338, 49630, 46434, 49552, 47172, 44944, 43340, 37050, 40613, 40598, 33794, 32523, 31273, 48029, 32846, 42778, 45325, 47740, 30863, 47245, 31227, 36078, 46812, 46895, 48367, 33563, 10249, 43488, 46955, 47661, 48897, 47945, 33819, 37424, 46540, 32126, 49803, 42497, 43258, 31122, 43047, 48202, 33634, 42290, 10490, 10001, 30686, 49902, 49987, 32981, 40950, 33341, 46520, 10300, 10745, 49972, 49674, 45042, 46992, 32450, 32198, 43294, 40569, 42586, 10632, 33351, 30565, 49327, 43200
## 6 36641, 46943, 10049, 43248, 10058, 40279, 48569, 49459, 48529, 49735, 42170, 10631, 31193, 49600, 30326, 10120, 37217, 37056, 33528, 33700, 33956, 32094, 33060, 37888, 31355, 32754, 31554, 40577, 33082, 32907, 31771, 10787, 31547, 46954, 49227, 33869, 43983, 30457, 49563, 48393, 33361, 42098, 46758, 9834, 30501, 33886, 44037, 40930, 44830, 10930, 33898, 43397, 43066, 9851, 33643, 42725, 37072, 37131, 42921, 10071, 32633, 48404, 44961, 10344, 40573, 43014, 49279, 10297, 41072, 10240, 36638, 48422, 30330, 48954, 32840, 48017, 9824, 30758, 10246, 49887, 32541, 31509, 49378, 33673, 46833, 9984, 49753, 33682, 30429, 42320, 33710, 42802, 44908, 32557, 9869, 48451, 44007, 35894, 33906, 10786, 44886, 32035, 36742, 33521, 10878, 42400, 49800, 40360, 42700, 33045, 37090, 46906, 33863, 42770, 46436, 36234, 35861, 48922, 45267, 47197, 47839, 47187, 47218, 42318, 35903, 36961, 50010, 49730, 32991, 46548, 42334, 41899, 40426, 47035, 36474, 49323, 33191, 31160, 30893, 33258, 42112, 49292, 36185, 10553, 32331, 10575, 43953, 41938, 47423, 31001, 10579, 45185, 30633, 42851, 31180, 37047, 9893, 46737, 42375, 42366, 43418, 35837, 32370, 40705, 33996, 47160, 46470, 33101, 33447, 9855, 49125, 40637, 42059, 49959, 44970, 41207, 48823, 32789, 44050, 46996, 48633, 42761, 35922
## 7 48075, 33105, 47407, 31849, 36316, 32918, 33706, 49430, 40276, 42640, 9855, 41887, 34035, 10071, 10822, 49039, 44989, 49957, 30689, 36505, 41898, 43427, 9943, 37298, 32950, 35862, 30892, 33619, 32981, 41990, 42072, 33188, 48613, 40390, 41131, 46623, 46723, 33010, 49049, 31425, 10179, 48821, 37273, 33933, 30251, 48115, 31170, 41196, 46370, 37043, 41937, 33297, 30603, 47234, 32725, 46967, 35921, 46653, 46471, 46797, 31235, 46988, 32319, 43989, 40497, 47013, 49374, 49471, 42298, 36722, 31318, 41099, 9834, 10402, 40933, 41223, 36399, 42968, 41137, 36943, 32213, 31056, 31557, 37309, 10851, 30524, 48589, 48000, 48559, 10079, 37124, 32425, 10659, 31768, 40969, 10132, 33814, 31505, 40401, 10133, 49193, 40845, 49447, 33533, 42144, 10429, 48440, 41175, 48736, 41001, 49310, 10484, 33404, 9891, 10908, 42123, 33401, 47553, 42304, 32473, 47181, 47433, 33137, 30328, 32894, 43843, 37048, 30687, 31751, 40303, 10187, 49451, 47015, 9899, 42367, 48923, 30712, 36466, 49623, 32627, 32891, 31641, 49450, 41978, 31618, 30443, 10513, 37364, 49246, 47158, 43013, 40537, 40875, 10761, 48676, 44239, 48399, 43014, 48394, 10884, 30201, 45043, 32033, 44444, 46937, 10676, 10570, 49541, 42376, 46422, 10161, 46682, 41241, 46449, 31167, 47751, 41193, 31576, 9830, 36938, 42030, 10443, 44806, 46870, 31378, 40471, 32223, 44847, 37039, 33093, 47997, 36297, 46889, 31536, 40715, 47362, 36067, 46510, 48864, 48502, 9798, 46886, 36259, 32571, 46392, 40597, 44835, 48744, 37275, 47772, 42709, 32798, 47570, 43405, 10069, 9959, 48527, 42327, 37228, 36683, 30944, 31947, 42634, 31610, 31036, 32265, 32592, 48915, 9905, 36349, 40444, 47157, 42220, 47830, 10123, 37235, 30341, 31191, 48696, 44008, 31716, 30250, 30840, 33656, 46628, 30516, 10488, 48804, 10471, 47196, 36446, 9893, 37188, 48711, 41155, 46379, 37035, 42493, 9990, 48877, 36491, 43916, 43104, 42593, 49226, 40591, 46904, 36622, 41177, 40724, 49692, 41982, 42651, 41232, 31544, 10867, 10779, 49462, 31553, 46869, 40552, 41164, 49789, 31783, 47232, 37045, 40487, 41065, 42090, 46841, 42788, 40381, 10883, 32220, 36472, 42209, 36460, 42673, 47067, 41197, 43268, 33609, 44296, 49622, 46455, 47085, 40473, 33289, 31920, 43044, 33571, 37412, 30477, 48653, 47948, 37149, 49781, 48734, 43395, 30610, 33018, 30529, 32126, 32408, 44991, 47822, 10396, 48871, 42468, 41992, 44975, 45080, 33100, 10700, 10392, 37326, 31887, 36832, 43469, 37210, 36631, 47910, 45224, 49454, 35997, 31310, 32404, 40728, 47510, 37143, 40906, 32124, 42248, 42074, 40305, 40640, 49822, 36171, 42381, 48569, 43523, 49676, 47719, 9885, 48733, 37087, 30741, 37121, 31224, 32255, 48656, 42824, 41067, 47481, 37120, 40557, 41140, 49335, 49792, 31809, 36804, 48542, 33430, 40437, 41083, 46966, 40718, 49548, 10026, 41157, 10435, 49535, 32909, 10873, 42447, 49546, 47678, 49603, 36729, 49186, 33453, 30340, 37097, 43595, 10626, 46805, 44125, 46676, 9922, 46888, 49468, 49785, 47198, 49207, 33774, 36122, 43254, 10372, 41051, 46807, 49675, 48928, 32865, 48442, 41134, 40685, 41997, 42589, 33161, 32674, 37209, 49973, 36147, 47243, 42726, 31049, 44010, 10881, 9782, 36224, 36017, 42574, 40632, 43904, 32020, 48543, 40737, 42613, 33223, 33293, 10924, 30534, 47588, 44797, 42158, 31022, 48684, 31721, 43348, 33500, 9849, 30546, 48138, 10423, 32750, 33632, 42498, 33118, 36374, 10885, 40633, 42078, 44871, 33805, 36709, 41411, 47356, 44980, 46899, 30690, 49644, 10258, 33398, 37316, 10260, 48652, 32616, 46488, 31986, 49089, 47331, 42332, 46825, 46965, 32012, 46527, 46508, 33870, 42831, 48761, 45012, 49933, 35955, 10242, 45167, 42204, 49952, 48774, 42480, 49333, 41117, 46454, 47833, 40813, 46756, 47102, 32468, 34064, 44588, 37095, 30697, 32996, 49625, 41179, 9862, 31826, 46695
These is a quick overview at the number of genes in enriched gene families between pairs of comparisons:
# Group by module and summarize
commongenes <- PFLA_BLAN_COMPARISON$orthology_overlap_modules$
genes_in_common_fams$commonfams$table_a_common %>%
group_by(module) %>%
summarize(
numgenes = n(),
genes = paste(ifelse(n() > 3, paste0(paste(head(id, 3), collapse = ",")," ..."), paste(id, collapse = ", ")), collapse = ", ")
)
# Rename columns
colnames(commongenes) <- c("module", "numgenes", "genes")
commongenes
## # A tibble: 20 × 3
## module numgenes genes
## <chr> <int> <chr>
## 1 02__4 39 TCONS_00024188,TCONS_00055307,TCONS_00056697 ...
## 2 02__6 61 TCONS_00056311,TCONS_00055789,TCONS_00057275 ...
## 3 03__8 45 TCONS_00024709,TCONS_00024711,TCONS_00054934 ...
## 4 04__15 30 TCONS_00023673,TCONS_00055090,TCONS_00055157 ...
## 5 06__3 74 TCONS_00022983,TCONS_00023138,TCONS_00054994 ...
## 6 06__6 138 TCONS_00038727,TCONS_00032349,TCONS_00023049 ...
## 7 07__3 65 TCONS_00039102,TCONS_00054786,TCONS_00023200 ...
## 8 14__18 88 TCONS_00032441,TCONS_00024858,TCONS_00023794 ...
## 9 15__21 84 TCONS_00022967,TCONS_00023592,TCONS_00025160 ...
## 10 17__21 144 TCONS_00032533,TCONS_00023193,TCONS_00024774 ...
## 11 17__22 75 TCONS_00024774,TCONS_00024813,TCONS_00025299 ...
## 12 17__24 95 TCONS_00024774,TCONS_00024813,TCONS_00023871 ...
## 13 19__21 106 TCONS_00023063,TCONS_00023644,TCONS_00025259 ...
## 14 19__22 72 TCONS_00023063,TCONS_00023644,TCONS_00025571 ...
## 15 19__24 114 TCONS_00038643,TCONS_00009468,TCONS_00024996 ...
## 16 20__21 129 TCONS_00023061,TCONS_00023562,TCONS_00025191 ...
## 17 20__24 90 TCONS_00038768,TCONS_00023867,TCONS_00025281 ...
## 18 21__21 101 TCONS_00038473,TCONS_00022964,TCONS_00023068 ...
## 19 22__21 74 TCONS_00031927,TCONS_00031950,TCONS_00024615 ...
## 20 22__24 69 TCONS_00038759,TCONS_00025504,TCONS_00024155 ...
And here the combination of gene age and functional categories enrichment:
PFLA_BLAN_COMPARISON$orthology_overlap_modules$
genes_in_common_fams$commonfams$
age_a_common$heatmap +
PFLA_BLAN_COMPARISON$orthology_overlap_modules$
genes_in_common_fams$commonfams$
cog_a_comon$heatmap
And here the gene ontology enrichment of enriched gene families between pairs of modules.
# Add a new column with the name of the original data frame
keygenes_commonfams_GO <-
bind_rows(
PFLA_BLAN_COMPARISON$orthology_overlap_modules$
genes_in_common_fams$commonfams$go_a_common$GOtable,
.id = "pair_gfams"
)
# Rename the new column
colnames(keygenes_commonfams_GO)[1] <- "pair_gfams"
keygenes_commonfams_GO$logp <-
-log10(as.numeric(keygenes_commonfams_GO$classicFisher))
## Warning: NAs introduced by coercion
keygenes_commonfams_GO$logp[is.na(keygenes_commonfams_GO$logp)] <-
max(keygenes_commonfams_GO$logp, na.rm = T)
keygenes_commonfams_GO$obsexp <-
as.numeric(keygenes_commonfams_GO$Significant/keygenes_commonfams_GO$Expected)
keygenes_commonfams_GO <-
keygenes_commonfams_GO[
order(
keygenes_commonfams_GO$pair_gfams,
keygenes_commonfams_GO$Term
),
]
keygenes_commonfams_GO$Term <-
factor(
keygenes_commonfams_GO$Term,
levels = unique(keygenes_commonfams_GO$Term)
)
The GO plot here:
gg <- keygenes_commonfams_GO %>%
ggplot(
aes(x=pair_gfams, y = Term, size = Significant, color = logp)
) + geom_point() +
theme_bw() +
theme(
axis.text.x = element_text(angle = 45, hjust = 1, size = 8 )
)+
theme(
axis.text.y.left = element_text(hjust = 1, size = 8 ),
legend.title=element_text(size=8 ),
legend.text=element_text(size=8 )
)+
scale_size_continuous(
name = "Genes affected",
range = c(2,6)
) + scale_color_viridis("-log10(P-value)") +
xlab("")+ylab("")
gg
We will proceed the same as before using sea urchin in this case. Again, we define all the data necessary for the comparABle wrapper:
# Expression data
a = pfla_rna_counts
b = spur_vsd
# Samples for rowmeans_by repl
a_samples = levels(condition_x)
b_samples = unique(sub("_.$", "", colnames(b)))
# Family/orthology data
o = unique(oma_pfla_spur)
f = gene_gfam[grep("TCONS|STRPU",gene_gfam$id),]
# Module/Cluster information
ma = data.frame(
id = rownames(pfla_rna_dev),
module = pfla_rna_dev$cID
)
mb = spur_cl
colnames(mb) <- c("id","module")
# Gene Age
ga = pfla_age[,c(1,3)]
colnames(ga) = c("id","age")
# COG
cog_a <- pfla_cogs
# GOs
a_universe = rownames(vsd_allgen)
a_id2go = pfla_id2go
# Common Evo Nodes
common_evo_nodes = unique(ga$age)[!(unique(ga$age) %in% c("Hemich","Pfla_specif"))]
And we run comparABle:
PFLA_SPUR_COMPARISON <- comparABle(
a_name = "P.flava",
b_name = "S.purpuratus",
a = a,
b = b,
o = o,
f = f,
ma = ma,
mb = mb,
ga = ga,
gb = gb,
cog_a = cog_a,
cog_b = cog_b,
across_a = c("05_MG","06_MG","07_LG","08_To"),
across_b = c("04_EG_30h","05_MG_40h","06_LG_48h","07_Pri_56h"),
a_samples = a_samples,
b_samples = b_samples,
highlyvariable = TRUE,
cooc_p = 0.05,
cooc_h = c(0.70,0.95),
cooc_cor_method = "pearson",
a_universe = a_universe,
a_id2go = a_id2go,
common_evo_nodes = common_evo_nodes,
sep = ",\ "
)
## [1] "Tidy up data"
## [1] "Merge data"
## [1] "Correlations"
## [1] "PCA"
## [1] "Co-Occurrence"
## [1] "Common genes in Correlations"
## [1] "Common genes in Correlations (GO)"
## [1] "Starting analysis 1 of 1"
##
## Building most specific GOs .....
## ( 15540 GO terms found. )
##
## Build GO DAG topology ..........
## ( 15584 GO terms and 36018 relations. )
##
## Annotating nodes ...............
## ( 15464 genes annotated to the GO terms. )
##
## -- Classic Algorithm --
##
## the algorithm is scoring 4694 nontrivial nodes
## parameters:
## test statistic: fisher
## [1] "Common genes in Correlations (age)"
## [1] "Pairwise Orthology Overlap Strategy across modules -- hypergeometric and binonmial tests"
## [1] "Getting info on genes from shared families across modules"
## [1] "Starting analysis 1 of 20"
##
## Building most specific GOs .....
## ( 15540 GO terms found. )
##
## Build GO DAG topology ..........
## ( 15584 GO terms and 36018 relations. )
##
## Annotating nodes ...............
## ( 15464 genes annotated to the GO terms. )
##
## -- Classic Algorithm --
##
## the algorithm is scoring 1699 nontrivial nodes
## parameters:
## test statistic: fisher
## Warning in rev(-log(as.numeric(allres_x$classicFisher[1:maxgenesplot]) * : NAs
## introduced by coercion
## Warning in min(x): no non-missing arguments to min; returning Inf
## Warning in max(x): no non-missing arguments to max; returning -Inf
## [1] "Starting analysis 2 of 20"
##
## Building most specific GOs .....
## ( 15540 GO terms found. )
##
## Build GO DAG topology ..........
## ( 15584 GO terms and 36018 relations. )
##
## Annotating nodes ...............
## ( 15464 genes annotated to the GO terms. )
##
## -- Classic Algorithm --
##
## the algorithm is scoring 506 nontrivial nodes
## parameters:
## test statistic: fisher
## [1] "Starting analysis 3 of 20"
##
## Building most specific GOs .....
## ( 15540 GO terms found. )
##
## Build GO DAG topology ..........
## ( 15584 GO terms and 36018 relations. )
##
## Annotating nodes ...............
## ( 15464 genes annotated to the GO terms. )
##
## -- Classic Algorithm --
##
## the algorithm is scoring 743 nontrivial nodes
## parameters:
## test statistic: fisher
## [1] "Starting analysis 4 of 20"
##
## Building most specific GOs .....
## ( 15540 GO terms found. )
##
## Build GO DAG topology ..........
## ( 15584 GO terms and 36018 relations. )
##
## Annotating nodes ...............
## ( 15464 genes annotated to the GO terms. )
##
## -- Classic Algorithm --
##
## the algorithm is scoring 1052 nontrivial nodes
## parameters:
## test statistic: fisher
## [1] "Starting analysis 5 of 20"
##
## Building most specific GOs .....
## ( 15540 GO terms found. )
##
## Build GO DAG topology ..........
## ( 15584 GO terms and 36018 relations. )
##
## Annotating nodes ...............
## ( 15464 genes annotated to the GO terms. )
##
## -- Classic Algorithm --
##
## the algorithm is scoring 654 nontrivial nodes
## parameters:
## test statistic: fisher
## [1] "Starting analysis 6 of 20"
##
## Building most specific GOs .....
## ( 15540 GO terms found. )
##
## Build GO DAG topology ..........
## ( 15584 GO terms and 36018 relations. )
##
## Annotating nodes ...............
## ( 15464 genes annotated to the GO terms. )
##
## -- Classic Algorithm --
##
## the algorithm is scoring 936 nontrivial nodes
## parameters:
## test statistic: fisher
## [1] "Starting analysis 7 of 20"
##
## Building most specific GOs .....
## ( 15540 GO terms found. )
##
## Build GO DAG topology ..........
## ( 15584 GO terms and 36018 relations. )
##
## Annotating nodes ...............
## ( 15464 genes annotated to the GO terms. )
##
## -- Classic Algorithm --
##
## the algorithm is scoring 747 nontrivial nodes
## parameters:
## test statistic: fisher
## [1] "Starting analysis 8 of 20"
##
## Building most specific GOs .....
## ( 15540 GO terms found. )
##
## Build GO DAG topology ..........
## ( 15584 GO terms and 36018 relations. )
##
## Annotating nodes ...............
## ( 15464 genes annotated to the GO terms. )
##
## -- Classic Algorithm --
##
## the algorithm is scoring 774 nontrivial nodes
## parameters:
## test statistic: fisher
## [1] "Starting analysis 9 of 20"
##
## Building most specific GOs .....
## ( 15540 GO terms found. )
##
## Build GO DAG topology ..........
## ( 15584 GO terms and 36018 relations. )
##
## Annotating nodes ...............
## ( 15464 genes annotated to the GO terms. )
##
## -- Classic Algorithm --
##
## the algorithm is scoring 516 nontrivial nodes
## parameters:
## test statistic: fisher
## [1] "Starting analysis 10 of 20"
##
## Building most specific GOs .....
## ( 15540 GO terms found. )
##
## Build GO DAG topology ..........
## ( 15584 GO terms and 36018 relations. )
##
## Annotating nodes ...............
## ( 15464 genes annotated to the GO terms. )
##
## -- Classic Algorithm --
##
## the algorithm is scoring 1040 nontrivial nodes
## parameters:
## test statistic: fisher
## [1] "Starting analysis 11 of 20"
##
## Building most specific GOs .....
## ( 15540 GO terms found. )
##
## Build GO DAG topology ..........
## ( 15584 GO terms and 36018 relations. )
##
## Annotating nodes ...............
## ( 15464 genes annotated to the GO terms. )
##
## -- Classic Algorithm --
##
## the algorithm is scoring 862 nontrivial nodes
## parameters:
## test statistic: fisher
## [1] "Starting analysis 12 of 20"
##
## Building most specific GOs .....
## ( 15540 GO terms found. )
##
## Build GO DAG topology ..........
## ( 15584 GO terms and 36018 relations. )
##
## Annotating nodes ...............
## ( 15464 genes annotated to the GO terms. )
##
## -- Classic Algorithm --
##
## the algorithm is scoring 303 nontrivial nodes
## parameters:
## test statistic: fisher
## [1] "Starting analysis 13 of 20"
##
## Building most specific GOs .....
## ( 15540 GO terms found. )
##
## Build GO DAG topology ..........
## ( 15584 GO terms and 36018 relations. )
##
## Annotating nodes ...............
## ( 15464 genes annotated to the GO terms. )
##
## -- Classic Algorithm --
##
## the algorithm is scoring 1270 nontrivial nodes
## parameters:
## test statistic: fisher
## [1] "Starting analysis 14 of 20"
##
## Building most specific GOs .....
## ( 15540 GO terms found. )
##
## Build GO DAG topology ..........
## ( 15584 GO terms and 36018 relations. )
##
## Annotating nodes ...............
## ( 15464 genes annotated to the GO terms. )
##
## -- Classic Algorithm --
##
## the algorithm is scoring 793 nontrivial nodes
## parameters:
## test statistic: fisher
## [1] "Starting analysis 15 of 20"
##
## Building most specific GOs .....
## ( 15540 GO terms found. )
##
## Build GO DAG topology ..........
## ( 15584 GO terms and 36018 relations. )
##
## Annotating nodes ...............
## ( 15464 genes annotated to the GO terms. )
##
## -- Classic Algorithm --
##
## the algorithm is scoring 620 nontrivial nodes
## parameters:
## test statistic: fisher
## [1] "Starting analysis 16 of 20"
##
## Building most specific GOs .....
## ( 15540 GO terms found. )
##
## Build GO DAG topology ..........
## ( 15584 GO terms and 36018 relations. )
##
## Annotating nodes ...............
## ( 15464 genes annotated to the GO terms. )
##
## -- Classic Algorithm --
##
## the algorithm is scoring 755 nontrivial nodes
## parameters:
## test statistic: fisher
## [1] "Starting analysis 17 of 20"
##
## Building most specific GOs .....
## ( 15540 GO terms found. )
##
## Build GO DAG topology ..........
## ( 15584 GO terms and 36018 relations. )
##
## Annotating nodes ...............
## ( 15464 genes annotated to the GO terms. )
##
## -- Classic Algorithm --
##
## the algorithm is scoring 650 nontrivial nodes
## parameters:
## test statistic: fisher
## [1] "Starting analysis 18 of 20"
##
## Building most specific GOs .....
## ( 15540 GO terms found. )
##
## Build GO DAG topology ..........
## ( 15584 GO terms and 36018 relations. )
##
## Annotating nodes ...............
## ( 15464 genes annotated to the GO terms. )
##
## -- Classic Algorithm --
##
## the algorithm is scoring 239 nontrivial nodes
## parameters:
## test statistic: fisher
## [1] "Starting analysis 19 of 20"
##
## Building most specific GOs .....
## ( 15540 GO terms found. )
##
## Build GO DAG topology ..........
## ( 15584 GO terms and 36018 relations. )
##
## Annotating nodes ...............
## ( 15464 genes annotated to the GO terms. )
##
## -- Classic Algorithm --
##
## the algorithm is scoring 819 nontrivial nodes
## parameters:
## test statistic: fisher
## [1] "Starting analysis 20 of 20"
##
## Building most specific GOs .....
## ( 15540 GO terms found. )
##
## Build GO DAG topology ..........
## ( 15584 GO terms and 36018 relations. )
##
## Annotating nodes ...............
## ( 15464 genes annotated to the GO terms. )
##
## -- Classic Algorithm --
##
## the algorithm is scoring 1185 nontrivial nodes
## parameters:
## test statistic: fisher
## [1] "Plots"
## Warning: The input is a data frame-like object, convert it to a matrix.
## Warning: The input is a data frame-like object, convert it to a matrix.
## [1] "Generating results"
Like before, first we will tidy up the pairwise correlation data and add names to the rows and columns of the jensen-shannon distance matrix.
colnames(PFLA_SPUR_COMPARISON$pairwise_correlations$js) <-
colnames(PFLA_SPUR_COMPARISON$pairwise_correlations$pe)
rownames(PFLA_SPUR_COMPARISON$pairwise_correlations$js) <-
rownames(PFLA_SPUR_COMPARISON$pairwise_correlations$pe)
The heatmaps of pairwise correlations and jensen-shannon divergence between Ptychodera and Sea Urchin:
h1 <- Heatmap(PFLA_SPUR_COMPARISON$pairwise_correlations$pe,cluster_rows = F, cluster_columns = F, show_row_names = TRUE, name = "Pearson", col = sequential_hcl(10,"BluYl", rev = TRUE))
h2 <- Heatmap(PFLA_SPUR_COMPARISON$pairwise_correlations$sp,cluster_rows = F, cluster_columns = F, show_row_names = TRUE, name = "Spearman", col = sequential_hcl(10,"YlOrRd", rev = TRUE))
h3 <- Heatmap(PFLA_SPUR_COMPARISON$pairwise_correlations$js,cluster_rows = F, cluster_columns = F, show_row_names = TRUE, name = "JSD", col = brewer.pal(10,"RdBu"))
h_list <- h1+h2+h3
draw(h_list, auto_adjust = FALSE)
The average expression profile between genes highly correlated at gastrulation between species:
# Common genes, highly correlated
par(mfrow = c(1,2))
boxplot(
main = "P.flava",
PFLA_SPUR_COMPARISON$high_corr_genes$table[,3:6],
col = viridis::inferno(7)[3:7],
xlab = "stage",
ylab = "scaled expression"
)
boxplot(
main = "B.lanceolatum",
PFLA_SPUR_COMPARISON$high_corr_genes$table[,7:10],
col = viridis::magma(7)[3:7],
xlab = "stage",
ylab = "scaled expression"
)
par(mfrow = c(1,1))
The GO term enrichment of these genes:
# GO terms
#' turn this into a GGplot, same for the whole plethora of
#' enriched GO terms
plot(
x =
PFLA_SPUR_COMPARISON$high_corr_genes$GOs$GOtable$a$Significant /
PFLA_SPUR_COMPARISON$high_corr_genes$GOs$GOtable$a$Expected,
y =
-log(
as.numeric(
PFLA_SPUR_COMPARISON$high_corr_genes$GOs$GOtable$a$classicFisher
)
),
xlab = "FC no. Obs/Exp genes",
ylab = "-logpvalue"
)
text(
x =
PFLA_SPUR_COMPARISON$high_corr_genes$GOs$GOtable$a$Significant /
PFLA_SPUR_COMPARISON$high_corr_genes$GOs$GOtable$a$Expected,
y =
-log(
as.numeric(
PFLA_SPUR_COMPARISON$high_corr_genes$GOs$GOtable$a$classicFisher
)
),
labels = PFLA_SPUR_COMPARISON$high_corr_genes$GOs$GOtable$a$Term,
pos = 4,
offset = 0.5,
cex = 0.6
)
The gene age of the genes highly correlated in gastrulation between species:
# Age of highly cor genes
par(mfrow = c(1,2))
barplot(
as.numeric(c(PFLA_SPUR_COMPARISON$high_corr_genes$age$enrichment[1,1:6])),
col = brewer.pal(6, "Spectral"),
main = "gene Age Enrichment"
)
barplot(
as.numeric(c(PFLA_SPUR_COMPARISON$high_corr_genes$age$AgeperModule[1,1:6])),
col = brewer.pal(6, "Spectral"),
main = "Genes per Age per Gene Module"
)
par(mfrow = c(1,1))
And the co-ocurrence matrix shocasing ptychodera gastrulation is similar to sea urchin gastrulation as well as similarities between larval stages
Heatmap(
name = "co-occurrence",
PFLA_SPUR_COMPARISON$coocurrence_analysis$cooccurrence,
cluster_rows = PFLA_SPUR_COMPARISON$coocurrence_analysis$tree,
cluster_columns = PFLA_SPUR_COMPARISON$coocurrence_analysis$tree,
col = sequential_hcl(10,"YlOrRd", rev = TRUE)
)
Below the orthology overlap strategy showcasing similarities at the gene family usage between species:
pf_avg_hm+
PFLA_SPUR_COMPARISON$plots$orthology_overlap_binomial_hm+
PFLA_SPUR_COMPARISON$plots$orthology_overlap_hypgeom_hm
An overview of the stats of these tests:
head(PFLA_SPUR_COMPARISON$orthology_overlap_modules$pairwise_module_comparison$stats)
## module_a module_b success_in_samples sample_size success_in_pop gene_POP
## 2 01 1 14 1207 223 21516
## 3 01 2 3 1207 141 21516
## 4 01 3 1 1207 54 21516
## 5 01 4 5 1207 126 21516
## 6 01 5 4 1207 137 21516
## 7 01 6 3 1207 65 21516
## hypgeom_pval hypgeom_log binom_pval
## 2 0.3713175 0.99069781 0.6678416
## 3 0.9873044 0.01277691 0.1034854
## 4 0.9559101 0.04509136 0.3839175
## 5 0.8417109 0.17231865 0.5708049
## 6 0.9527282 0.04842562 0.2718180
## 7 0.7140292 0.33683146 1.0000000
## gfams_common
## 2 48373, 27504, 35476, 37878, 41986, 26931, 34803, 47874, 31810, 37771, 31816, 27826, 48084, 27352
## 3 42136, 28542, 37771
## 4 46509
## 5 28102, 46842, 27591, 43342, 27198
## 6 40289, 27003, 41379, 42102
## 7 48760, 28759, 27198
## gfams_excl_a
## 2 47207, 11295, 37764, 12130, 13036, 32119, 41908, 11277, 11275, 42600, 35809, 32108, 35525, 40532, 38126, 12393, 49703, 28723, 38930, 40750, 30803, 42915, 40289, 28102, 43551, 37109, 31050, 47582, 40697, 29369, 31973, 43096, 34448, 49014, 10969, 45199, 30600, 32004, 12743, 28481, 11767, 12255, 48511, 42136, 13898, 40656, 40582, 47555, 34784, 30604, 49088, 26900, 42821, 36299, 46883, 30396, 40429, 47474, 38081, 29334, 46347, 28686, 40311, 36319, 27112, 43406, 12229, 42961, 13589, 40893, 35519, 11786, 13269, 27657, 31282, 43380, 30465, 42609, 47476, 13507, 48985, 26889, 41058, 12226, 48934, 40440, 44784, 41948, 28542, 12465, 11207, 47416, 43400, 40649, 49941, 12730, 45047, 46593, 27149, 40886, 37920, 43262, 11085, 13748, 29773, 34422, 42415, 49016, 38961, 48151, 44717, 38368, 45619, 45703, 48111, 41139, 31773, 12092, 37427, 49899, 45710, 47096, 46687, 42768, 41239, 38332, 41638, 42712, 40695, 37324, 48064, 30410, 42786, 42711, 12829, 47811, 47105, 37006, 48940, 42674, 43159, 40698, 43222, 34814, 27133, 36887, 42309, 34813, 12156, 26810, 46534, 37743, 12613, 46554, 40652, 38944, 49201, 47454, 47897, 37589, 27003, 31320, 43545, 37444, 47260, 26793, 13686, 47326, 49085, 37361, 27330, 42195, 47153, 47927, 31551, 31580, 11199, 11612, 49750, 37787, 47143, 43450, 46900, 30141, 41201, 49775, 13022, 48797, 30377, 48858, 43034, 44369, 12454, 46975, 43253, 42785, 41222, 34832, 35967, 12671, 11763, 39002, 43739, 12155, 34067, 11282, 48167, 37192, 27366, 49565, 11178, 11724, 13820, 49512, 49838, 46445, 29303, 31897, 11791, 30599, 47735, 37457, 13572, 48869, 30200, 46706, 43898, 47677, 40769, 12336, 11102, 48161, 48070, 47133, 42682, 31006, 42525, 12723, 47580, 14065, 41379, 45019, 12425, 29580, 40380, 31906, 14031, 42128, 34927, 43278, 12937, 46946, 44004, 48926, 48760, 14066, 11825, 28402, 27451, 12787, 49033, 46531, 36388, 29191, 43481, 28987, 41615, 27289, 37260, 32335, 47159, 28134, 13325, 39160, 34379, 27459, 35796, 48062, 27359, 41153, 42054, 13650, 12178, 31604, 11090, 12288, 31747, 27728, 46686, 49202, 42172, 12286, 14107, 32333, 43914, 27432, 37136, 28046, 27376, 43992, 48536, 45693, 10942, 42438, 31263, 39233, 30509, 41655, 30060, 11301, 41146, 48098, 27892, 31561, 42408, 11765, 47550, 12409, 49457, 47973, 43237, 48826, 49695, 40317, 42293, 48407, 43900, 11901, 41901, 31341, 41124, 34103, 39254, 49791, 40312, 42798, 26892, 37193, 42522, 11488, 36634, 12316, 27369, 39413, 31367, 46620, 48811, 37846, 31014, 40402, 37410, 36695, 48646, 42659, 34201, 46752, 36243, 42502, 36650, 29093, 36311, 11570, 47984, 32435, 13666, 46924, 35494, 47495, 49456, 49198, 42274, 45643, 40356, 48241, 31368, 46393, 43049, 13487, 37078, 49639, 30577, 29025, 30488, 13495, 13488, 43091, 44934, 28759, 11418, 36451, 12287, 29832, 46733, 11368, 30412, 49230, 49643, 38622, 49034, 42775, 37612, 27464, 12965, 46440, 40345, 42011, 37388, 30320, 29761, 13359, 35811, 29370, 43752, 48689, 48967, 12860, 32078, 40313, 36907, 11585, 34155, 41397, 11594, 43657, 28015, 42800, 39428, 11597, 46612, 47137, 41392, 43282, 40621, 47534, 48409, 11673, 11531, 29298, 12998, 34096, 28934, 10936, 44033, 46410, 11078, 31145, 26865, 13708, 13026, 10962, 42947, 46780, 28865, 47226, 27287, 43455, 29221, 39409, 42109, 31098, 49169, 43514, 47732, 37241, 28413, 49714, 43218, 30448, 49115, 28051, 29212, 37841, 42966, 46551, 48039, 32409, 37553, 39394, 43748, 31444, 48097, 30955, 11465, 46685, 42288, 43683, 26832, 12407, 41037, 49217, 46411, 46789, 11054, 48863, 34840, 12734, 40329, 32295, 47591, 42102, 47083, 28654, 32297, 30548, 44027, 31363, 27759, 36422, 46697, 40288, 36348, 40275, 40420, 47613, 31741, 41707, 12459, 37117, 47767, 26936, 30539, 42478, 42601, 14093, 49810, 48358, 36521, 47704, 42663, 46769, 41535, 34956, 12491, 42316, 36357, 35960, 34145, 42448, 12475, 30649, 47577, 12572, 42747, 43229, 12353, 41312, 34807, 40535, 29161, 11911, 30433, 29225, 48757, 42434, 13464, 31086, 42979, 12002, 36144, 42361, 30258, 27193, 28376, 31540, 47502, 11177, 28000, 40752, 26986, 26773, 34284, 41604, 12338, 30836, 12244, 40854, 36957, 30580, 30809, 48808, 40273, 34206, 40816, 27523, 46720, 36627, 48134, 37750, 47043, 30464, 34669, 40511, 34107, 42864, 29464, 43307, 37251, 30199, 11830, 28656, 47442, 43681, 13652, 42679, 40316, 29481, 30559, 35982, 42970, 41097, 41950, 30269, 40505, 29248, 43099, 47535, 33578, 34873, 12718, 47977, 48163, 41304, 46464, 11458, 40940, 11669, 42350, 47676, 46984, 13426, 37155, 43312, 27510, 47491, 30076, 47283, 36655, 47291, 49716, 49691, 31555, 12941, 35881, 44670, 48135, 33139, 11853, 40327, 34804, 13839, 46645, 28831, 47056, 39317, 42235, 26978, 41983, 34138, 36534, 42662, 41936, 45126, 48845, 47744, 30400, 27070, 46427, 13515, 29348, 27183, 42653, 47500, 35687, 47506, 28963, 13851, 40538, 12261, 34249, 29501, 35542, 29474, 12850, 26874, 12050, 41054, 47184, 29550, 34188, 11297, 39303, 37178, 43375, 28913, 40274, 40294, 31862, 47029, 27094, 30727, 47618, 30092, 40343, 29777, 29561, 27994, 42912, 28856, 47741, 13932, 39257, 31387, 46731, 36574, 47691, 43529, 47145, 30384, 47672, 13002, 41473, 42630, 48987, 26867, 46380, 31325, 42889, 40660, 42774, 27583, 40268, 49556, 41704, 34335, 42210, 42372, 31877, 40902, 27253, 11953, 37148, 11605, 34947, 27942, 31700, 29516, 45572, 40522, 48285, 47250, 40367, 47273, 43141, 36977, 12895, 47138, 40878, 43401, 43260, 26757, 36707, 48834, 49733, 43691, 36322, 27733, 11442, 36389, 42176, 43219, 49143, 46509, 11249, 34893, 27241, 13262, 46800, 31116, 47801, 42469, 42414, 40909, 47173, 13832, 31723, 12431, 47222, 31276, 30843, 28712, 42330, 41199, 30222, 36940, 49870, 41434, 41711, 48695, 48013, 30435, 50031, 37411, 46987, 50023, 42196, 40323, 12768, 42093, 27335, 37714, 34459, 47764, 27530, 47843, 41309, 40442, 49060, 42345, 47576, 13822, 45724, 48379, 46477, 40405, 49106, 37646, 12790, 28428, 13461, 29289, 13911, 42108, 40564, 29524, 30285, 36272, 48784, 28287, 43567, 41208, 40265, 43917, 47239, 42025, 30709, 49059, 37279, 29185, 12542, 46463, 34383, 12129, 35897, 13471, 28149, 11121, 41487, 30459, 46950, 37495, 13470, 43102, 49592, 49993, 40997, 37153, 48857, 41013, 42217, 42750, 47895, 28178, 12642, 47634, 49093, 28595, 40408, 47054, 13580, 34450, 41098, 41092, 34071, 49330, 29199, 11416, 48159, 43972, 44356, 48942, 41609, 31823, 11051, 48240, 40324, 13634, 34922, 30969, 47202, 46842, 42652, 47860, 27591, 47163, 44712, 47410, 36160, 47592, 26912, 46651, 36248, 26980, 40772, 11949, 31829, 36015, 12789, 38013, 34865, 13265, 49944, 43342, 41086, 47310, 47899, 13055, 37682, 49969, 37060, 40860, 11047, 27174, 42910, 31833, 49811, 30021, 43497, 27462, 37248, 42732, 40525, 49391, 47406, 13053, 13114, 40915, 28130, 36637, 29336, 28221, 40636, 12839, 34372, 42935, 48899, 46587, 30650, 37653, 40704, 13927, 42024, 47530, 32048, 34770, 49497, 31334, 12553, 36647, 42043, 41372, 40347, 30939, 43206, 13925, 37608, 30289, 29319, 46414, 32053, 35521, 40887, 31457, 30913, 41959, 47560, 43170, 13685, 13247, 40477, 32145, 27052, 44682, 40719, 39155, 36900, 41691, 41670, 34263, 31117, 49006, 46816, 11022, 47653, 31395, 28095, 42060, 14016, 28244, 30502, 48713, 37425, 26907, 12039, 48048, 42526, 34283, 45736, 31228, 40720, 40673, 33497, 34353, 30248, 46381, 31223, 49365, 40627, 30963, 40692, 27188, 36573, 36022, 40625, 12527, 28737, 34961, 47132, 30715, 47176, 48288, 34295, 48396, 27749, 29730, 36414, 30626, 42642, 43417, 26831, 28766, 49637, 11936, 49999, 13785, 36582, 32357, 34834, 47321, 34287, 12649, 43570, 36118, 37113, 34593, 34239, 40513, 42514, 30262, 27198, 47162, 37147, 43758, 41592, 27539, 39539, 37573, 37631, 47492, 40314, 32379, 40608, 43981, 31308, 42582, 28726, 47585, 40623, 12920, 13431, 28100, 31074, 37415, 34764, 43215, 13687, 29323, 47498, 32014, 47057, 31298, 30695, 40907, 46479, 37264, 11983, 13317, 41701, 46776, 47217, 48852, 49769, 42023, 43995, 49249, 41317, 43955, 29618, 39264, 48920, 36982, 27761, 37435, 36435, 30389, 50059, 46803, 36149, 30187, 48791, 47924, 40810, 26851, 37526, 42188, 27434, 37452, 43256, 34079, 11981, 43922, 47754, 42782, 40761, 13279, 30768, 31030, 34080, 48886, 32043, 47349, 42756, 46770, 40382, 13741, 40767, 46369, 27114, 47401, 42251, 27203, 34872, 43512, 40787, 31496, 27120, 42356, 13226, 34767, 47231, 12434, 49518, 47168, 36948, 12143, 40413, 43556, 12813, 31410, 34929, 29665, 27557, 40929, 31076, 31461, 26845, 44641, 44388, 32206, 13919, 11455, 35699, 48021, 13393
## 3 47207, 11295, 37764, 12130, 13036, 32119, 41908, 11277, 11275, 42600, 35809, 32108, 35525, 40532, 38126, 12393, 49703, 28723, 38930, 40750, 30803, 42915, 40289, 28102, 43551, 37109, 31050, 47582, 40697, 29369, 31973, 43096, 34448, 49014, 10969, 45199, 30600, 32004, 12743, 28481, 11767, 12255, 48511, 13898, 40656, 40582, 47555, 34784, 30604, 49088, 26900, 42821, 36299, 46883, 30396, 40429, 47474, 38081, 29334, 46347, 28686, 40311, 36319, 27112, 43406, 12229, 42961, 13589, 40893, 35519, 11786, 13269, 27657, 31282, 43380, 30465, 42609, 47476, 13507, 48985, 26889, 41058, 12226, 48934, 40440, 44784, 41948, 12465, 11207, 47416, 43400, 40649, 49941, 12730, 45047, 46593, 27149, 40886, 37920, 43262, 11085, 13748, 29773, 34422, 42415, 49016, 38961, 48151, 44717, 38368, 45619, 45703, 48111, 41139, 31773, 12092, 37427, 49899, 45710, 47096, 46687, 42768, 41239, 38332, 41638, 42712, 40695, 37324, 48064, 30410, 42786, 42711, 12829, 47811, 47105, 37006, 48940, 42674, 43159, 40698, 43222, 34814, 27133, 36887, 42309, 34813, 12156, 26810, 46534, 37743, 12613, 46554, 40652, 38944, 49201, 47454, 47897, 37589, 27003, 31320, 43545, 37444, 47260, 26793, 13686, 47326, 49085, 37361, 27330, 42195, 47153, 47927, 31551, 31580, 48373, 11199, 11612, 49750, 37787, 47143, 43450, 46900, 30141, 41201, 49775, 13022, 48797, 30377, 48858, 43034, 44369, 12454, 46975, 43253, 27504, 42785, 41222, 34832, 35967, 12671, 11763, 39002, 43739, 12155, 34067, 11282, 48167, 37192, 27366, 49565, 11178, 11724, 13820, 49512, 49838, 46445, 29303, 31897, 11791, 30599, 47735, 37457, 13572, 48869, 30200, 46706, 43898, 35476, 47677, 40769, 12336, 11102, 48161, 48070, 47133, 42682, 31006, 42525, 12723, 47580, 14065, 41379, 45019, 12425, 29580, 40380, 31906, 14031, 42128, 34927, 43278, 12937, 46946, 44004, 48926, 48760, 14066, 11825, 28402, 27451, 12787, 49033, 46531, 36388, 29191, 43481, 28987, 41615, 27289, 37260, 32335, 47159, 28134, 13325, 39160, 34379, 27459, 35796, 48062, 37878, 27359, 41153, 42054, 13650, 12178, 31604, 11090, 12288, 31747, 27728, 46686, 49202, 42172, 12286, 14107, 32333, 43914, 27432, 37136, 28046, 27376, 43992, 48536, 45693, 10942, 42438, 31263, 39233, 30509, 41655, 30060, 11301, 41146, 48098, 27892, 31561, 42408, 11765, 47550, 12409, 49457, 47973, 43237, 48826, 49695, 40317, 42293, 48407, 43900, 11901, 41901, 31341, 41124, 34103, 39254, 49791, 40312, 42798, 26892, 37193, 42522, 11488, 36634, 12316, 27369, 39413, 31367, 46620, 48811, 37846, 31014, 40402, 37410, 36695, 48646, 42659, 34201, 46752, 36243, 42502, 36650, 29093, 36311, 11570, 47984, 32435, 13666, 46924, 35494, 47495, 49456, 49198, 42274, 45643, 40356, 48241, 31368, 46393, 43049, 13487, 37078, 49639, 30577, 29025, 30488, 13495, 13488, 43091, 44934, 28759, 11418, 36451, 12287, 29832, 46733, 11368, 30412, 49230, 49643, 38622, 49034, 42775, 37612, 27464, 12965, 46440, 40345, 42011, 37388, 30320, 29761, 13359, 35811, 29370, 43752, 48689, 41986, 48967, 12860, 32078, 40313, 36907, 11585, 34155, 41397, 11594, 43657, 28015, 42800, 39428, 11597, 46612, 47137, 41392, 43282, 40621, 47534, 48409, 11673, 11531, 29298, 12998, 34096, 28934, 10936, 44033, 46410, 11078, 31145, 26865, 13708, 13026, 10962, 42947, 46780, 28865, 47226, 27287, 43455, 29221, 39409, 42109, 31098, 49169, 43514, 47732, 37241, 28413, 49714, 43218, 30448, 49115, 28051, 29212, 37841, 42966, 46551, 48039, 32409, 37553, 39394, 43748, 31444, 48097, 30955, 11465, 46685, 42288, 43683, 26832, 12407, 41037, 49217, 46411, 46789, 11054, 48863, 34840, 12734, 40329, 32295, 47591, 42102, 47083, 28654, 32297, 30548, 44027, 31363, 27759, 36422, 46697, 40288, 36348, 40275, 40420, 47613, 31741, 41707, 12459, 37117, 47767, 26936, 30539, 42478, 42601, 14093, 49810, 48358, 36521, 47704, 42663, 46769, 41535, 34956, 12491, 42316, 36357, 35960, 34145, 42448, 12475, 30649, 47577, 12572, 42747, 43229, 12353, 41312, 34807, 40535, 29161, 11911, 30433, 29225, 48757, 42434, 13464, 31086, 42979, 12002, 36144, 42361, 30258, 27193, 28376, 31540, 47502, 11177, 28000, 40752, 26986, 26773, 34284, 41604, 12338, 30836, 12244, 40854, 36957, 30580, 30809, 48808, 40273, 34206, 40816, 27523, 46720, 36627, 48134, 37750, 47043, 30464, 34669, 40511, 34107, 42864, 29464, 43307, 37251, 30199, 11830, 28656, 47442, 43681, 13652, 42679, 40316, 29481, 30559, 35982, 42970, 41097, 41950, 30269, 40505, 29248, 43099, 47535, 33578, 34873, 12718, 47977, 48163, 41304, 46464, 11458, 40940, 11669, 42350, 47676, 46984, 13426, 37155, 43312, 27510, 47491, 30076, 47283, 36655, 47291, 49716, 49691, 31555, 12941, 35881, 44670, 48135, 33139, 11853, 40327, 34804, 13839, 46645, 28831, 47056, 39317, 42235, 26978, 41983, 34138, 36534, 42662, 41936, 45126, 48845, 47744, 30400, 27070, 46427, 13515, 29348, 27183, 42653, 47500, 35687, 47506, 28963, 13851, 40538, 12261, 34249, 29501, 35542, 29474, 12850, 26874, 12050, 41054, 47184, 29550, 34188, 11297, 39303, 37178, 43375, 28913, 40274, 40294, 31862, 47029, 27094, 30727, 47618, 30092, 40343, 29777, 29561, 27994, 42912, 28856, 47741, 13932, 39257, 31387, 46731, 36574, 47691, 43529, 47145, 30384, 47672, 13002, 41473, 42630, 48987, 26867, 46380, 31325, 42889, 40660, 42774, 27583, 40268, 49556, 41704, 34335, 42210, 42372, 31877, 40902, 27253, 11953, 37148, 11605, 34947, 27942, 31700, 29516, 45572, 40522, 48285, 47250, 40367, 47273, 43141, 36977, 12895, 26931, 47138, 40878, 43401, 43260, 26757, 36707, 48834, 49733, 43691, 36322, 27733, 11442, 36389, 42176, 43219, 49143, 46509, 11249, 34893, 27241, 13262, 46800, 31116, 47801, 42469, 42414, 40909, 47173, 13832, 31723, 12431, 47222, 31276, 30843, 28712, 42330, 41199, 30222, 36940, 49870, 41434, 41711, 48695, 48013, 30435, 50031, 37411, 46987, 50023, 42196, 40323, 12768, 42093, 27335, 34803, 37714, 34459, 47764, 27530, 47843, 41309, 40442, 49060, 42345, 47576, 13822, 45724, 48379, 46477, 40405, 49106, 37646, 12790, 28428, 13461, 29289, 13911, 42108, 40564, 29524, 30285, 36272, 48784, 28287, 43567, 41208, 40265, 43917, 47239, 42025, 30709, 49059, 37279, 29185, 12542, 46463, 34383, 12129, 35897, 13471, 28149, 11121, 41487, 30459, 46950, 37495, 13470, 43102, 49592, 49993, 40997, 37153, 47874, 48857, 41013, 42217, 42750, 47895, 28178, 12642, 47634, 49093, 28595, 40408, 47054, 13580, 34450, 41098, 41092, 34071, 49330, 29199, 11416, 48159, 31810, 43972, 44356, 48942, 41609, 31823, 11051, 48240, 40324, 13634, 34922, 30969, 47202, 46842, 42652, 47860, 27591, 47163, 44712, 47410, 36160, 47592, 31816, 26912, 46651, 36248, 26980, 40772, 11949, 31829, 36015, 12789, 38013, 34865, 13265, 49944, 43342, 41086, 47310, 47899, 13055, 37682, 27826, 49969, 37060, 40860, 11047, 27174, 42910, 31833, 49811, 30021, 43497, 27462, 48084, 37248, 42732, 40525, 49391, 47406, 13053, 13114, 40915, 28130, 36637, 29336, 28221, 40636, 12839, 34372, 42935, 48899, 46587, 30650, 37653, 40704, 13927, 42024, 47530, 32048, 34770, 49497, 27352, 31334, 12553, 36647, 42043, 41372, 40347, 30939, 43206, 13925, 37608, 30289, 29319, 46414, 32053, 35521, 40887, 31457, 30913, 41959, 47560, 43170, 13685, 13247, 40477, 32145, 27052, 44682, 40719, 39155, 36900, 41691, 41670, 34263, 31117, 49006, 46816, 11022, 47653, 31395, 28095, 42060, 14016, 28244, 30502, 48713, 37425, 26907, 12039, 48048, 42526, 34283, 45736, 31228, 40720, 40673, 33497, 34353, 30248, 46381, 31223, 49365, 40627, 30963, 40692, 27188, 36573, 36022, 40625, 12527, 28737, 34961, 47132, 30715, 47176, 48288, 34295, 48396, 27749, 29730, 36414, 30626, 42642, 43417, 26831, 28766, 49637, 11936, 49999, 13785, 36582, 32357, 34834, 47321, 34287, 12649, 43570, 36118, 37113, 34593, 34239, 40513, 42514, 30262, 27198, 47162, 37147, 43758, 41592, 27539, 39539, 37573, 37631, 47492, 40314, 32379, 40608, 43981, 31308, 42582, 28726, 47585, 40623, 12920, 13431, 28100, 31074, 37415, 34764, 43215, 13687, 29323, 47498, 32014, 47057, 31298, 30695, 40907, 46479, 37264, 11983, 13317, 41701, 46776, 47217, 48852, 49769, 42023, 43995, 49249, 41317, 43955, 29618, 39264, 48920, 36982, 27761, 37435, 36435, 30389, 50059, 46803, 36149, 30187, 48791, 47924, 40810, 26851, 37526, 42188, 27434, 37452, 43256, 34079, 11981, 43922, 47754, 42782, 40761, 13279, 30768, 31030, 34080, 48886, 32043, 47349, 42756, 46770, 40382, 13741, 40767, 46369, 27114, 47401, 42251, 27203, 34872, 43512, 40787, 31496, 27120, 42356, 13226, 34767, 47231, 12434, 49518, 47168, 36948, 12143, 40413, 43556, 12813, 31410, 34929, 29665, 27557, 40929, 31076, 31461, 26845, 44641, 44388, 32206, 13919, 11455, 35699, 48021, 13393
## 4 47207, 11295, 37764, 12130, 13036, 32119, 41908, 11277, 11275, 42600, 35809, 32108, 35525, 40532, 38126, 12393, 49703, 28723, 38930, 40750, 30803, 42915, 40289, 28102, 43551, 37109, 31050, 47582, 40697, 29369, 31973, 43096, 34448, 49014, 10969, 45199, 30600, 32004, 12743, 28481, 11767, 12255, 48511, 42136, 13898, 40656, 40582, 47555, 34784, 30604, 49088, 26900, 42821, 36299, 46883, 30396, 40429, 47474, 38081, 29334, 46347, 28686, 40311, 36319, 27112, 43406, 12229, 42961, 13589, 40893, 35519, 11786, 13269, 27657, 31282, 43380, 30465, 42609, 47476, 13507, 48985, 26889, 41058, 12226, 48934, 40440, 44784, 41948, 28542, 12465, 11207, 47416, 43400, 40649, 49941, 12730, 45047, 46593, 27149, 40886, 37920, 43262, 11085, 13748, 29773, 34422, 42415, 49016, 38961, 48151, 44717, 38368, 45619, 45703, 48111, 41139, 31773, 12092, 37427, 49899, 45710, 47096, 46687, 42768, 41239, 38332, 41638, 42712, 40695, 37324, 48064, 30410, 42786, 42711, 12829, 47811, 47105, 37006, 48940, 42674, 43159, 40698, 43222, 34814, 27133, 36887, 42309, 34813, 12156, 26810, 46534, 37743, 12613, 46554, 40652, 38944, 49201, 47454, 47897, 37589, 27003, 31320, 43545, 37444, 47260, 26793, 13686, 47326, 49085, 37361, 27330, 42195, 47153, 47927, 31551, 31580, 48373, 11199, 11612, 49750, 37787, 47143, 43450, 46900, 30141, 41201, 49775, 13022, 48797, 30377, 48858, 43034, 44369, 12454, 46975, 43253, 27504, 42785, 41222, 34832, 35967, 12671, 11763, 39002, 43739, 12155, 34067, 11282, 48167, 37192, 27366, 49565, 11178, 11724, 13820, 49512, 49838, 46445, 29303, 31897, 11791, 30599, 47735, 37457, 13572, 48869, 30200, 46706, 43898, 35476, 47677, 40769, 12336, 11102, 48161, 48070, 47133, 42682, 31006, 42525, 12723, 47580, 14065, 41379, 45019, 12425, 29580, 40380, 31906, 14031, 42128, 34927, 43278, 12937, 46946, 44004, 48926, 48760, 14066, 11825, 28402, 27451, 12787, 49033, 46531, 36388, 29191, 43481, 28987, 41615, 27289, 37260, 32335, 47159, 28134, 13325, 39160, 34379, 27459, 35796, 48062, 37878, 27359, 41153, 42054, 13650, 12178, 31604, 11090, 12288, 31747, 27728, 46686, 49202, 42172, 12286, 14107, 32333, 43914, 27432, 37136, 28046, 27376, 43992, 48536, 45693, 10942, 42438, 31263, 39233, 30509, 41655, 30060, 11301, 41146, 48098, 27892, 31561, 42408, 11765, 47550, 12409, 49457, 47973, 43237, 48826, 49695, 40317, 42293, 48407, 43900, 11901, 41901, 31341, 41124, 34103, 39254, 49791, 40312, 42798, 26892, 37193, 42522, 11488, 36634, 12316, 27369, 39413, 31367, 46620, 48811, 37846, 31014, 40402, 37410, 36695, 48646, 42659, 34201, 46752, 36243, 42502, 36650, 29093, 36311, 11570, 47984, 32435, 13666, 46924, 35494, 47495, 49456, 49198, 42274, 45643, 40356, 48241, 31368, 46393, 43049, 13487, 37078, 49639, 30577, 29025, 30488, 13495, 13488, 43091, 44934, 28759, 11418, 36451, 12287, 29832, 46733, 11368, 30412, 49230, 49643, 38622, 49034, 42775, 37612, 27464, 12965, 46440, 40345, 42011, 37388, 30320, 29761, 13359, 35811, 29370, 43752, 48689, 41986, 48967, 12860, 32078, 40313, 36907, 11585, 34155, 41397, 11594, 43657, 28015, 42800, 39428, 11597, 46612, 47137, 41392, 43282, 40621, 47534, 48409, 11673, 11531, 29298, 12998, 34096, 28934, 10936, 44033, 46410, 11078, 31145, 26865, 13708, 13026, 10962, 42947, 46780, 28865, 47226, 27287, 43455, 29221, 39409, 42109, 31098, 49169, 43514, 47732, 37241, 28413, 49714, 43218, 30448, 49115, 28051, 29212, 37841, 42966, 46551, 48039, 32409, 37553, 39394, 43748, 31444, 48097, 30955, 11465, 46685, 42288, 43683, 26832, 12407, 41037, 49217, 46411, 46789, 11054, 48863, 34840, 12734, 40329, 32295, 47591, 42102, 47083, 28654, 32297, 30548, 44027, 31363, 27759, 36422, 46697, 40288, 36348, 40275, 40420, 47613, 31741, 41707, 12459, 37117, 47767, 26936, 30539, 42478, 42601, 14093, 49810, 48358, 36521, 47704, 42663, 46769, 41535, 34956, 12491, 42316, 36357, 35960, 34145, 42448, 12475, 30649, 47577, 12572, 42747, 43229, 12353, 41312, 34807, 40535, 29161, 11911, 30433, 29225, 48757, 42434, 13464, 31086, 42979, 12002, 36144, 42361, 30258, 27193, 28376, 31540, 47502, 11177, 28000, 40752, 26986, 26773, 34284, 41604, 12338, 30836, 12244, 40854, 36957, 30580, 30809, 48808, 40273, 34206, 40816, 27523, 46720, 36627, 48134, 37750, 47043, 30464, 34669, 40511, 34107, 42864, 29464, 43307, 37251, 30199, 11830, 28656, 47442, 43681, 13652, 42679, 40316, 29481, 30559, 35982, 42970, 41097, 41950, 30269, 40505, 29248, 43099, 47535, 33578, 34873, 12718, 47977, 48163, 41304, 46464, 11458, 40940, 11669, 42350, 47676, 46984, 13426, 37155, 43312, 27510, 47491, 30076, 47283, 36655, 47291, 49716, 49691, 31555, 12941, 35881, 44670, 48135, 33139, 11853, 40327, 34804, 13839, 46645, 28831, 47056, 39317, 42235, 26978, 41983, 34138, 36534, 42662, 41936, 45126, 48845, 47744, 30400, 27070, 46427, 13515, 29348, 27183, 42653, 47500, 35687, 47506, 28963, 13851, 40538, 12261, 34249, 29501, 35542, 29474, 12850, 26874, 12050, 41054, 47184, 29550, 34188, 11297, 39303, 37178, 43375, 28913, 40274, 40294, 31862, 47029, 27094, 30727, 47618, 30092, 40343, 29777, 29561, 27994, 42912, 28856, 47741, 13932, 39257, 31387, 46731, 36574, 47691, 43529, 47145, 30384, 47672, 13002, 41473, 42630, 48987, 26867, 46380, 31325, 42889, 40660, 42774, 27583, 40268, 49556, 41704, 34335, 42210, 42372, 31877, 40902, 27253, 11953, 37148, 11605, 34947, 27942, 31700, 29516, 45572, 40522, 48285, 47250, 40367, 47273, 43141, 36977, 12895, 26931, 47138, 40878, 43401, 43260, 26757, 36707, 48834, 49733, 43691, 36322, 27733, 11442, 36389, 42176, 43219, 49143, 11249, 34893, 27241, 13262, 46800, 31116, 47801, 42469, 42414, 40909, 47173, 13832, 31723, 12431, 47222, 31276, 30843, 28712, 42330, 41199, 30222, 36940, 49870, 41434, 41711, 48695, 48013, 30435, 50031, 37411, 46987, 50023, 42196, 40323, 12768, 42093, 27335, 34803, 37714, 34459, 47764, 27530, 47843, 41309, 40442, 49060, 42345, 47576, 13822, 45724, 48379, 46477, 40405, 49106, 37646, 12790, 28428, 13461, 29289, 13911, 42108, 40564, 29524, 30285, 36272, 48784, 28287, 43567, 41208, 40265, 43917, 47239, 42025, 30709, 49059, 37279, 29185, 12542, 46463, 34383, 12129, 35897, 13471, 28149, 11121, 41487, 30459, 46950, 37495, 13470, 43102, 49592, 49993, 40997, 37153, 47874, 48857, 41013, 42217, 42750, 47895, 28178, 12642, 47634, 49093, 28595, 40408, 47054, 13580, 34450, 41098, 41092, 34071, 49330, 29199, 11416, 48159, 31810, 43972, 37771, 44356, 48942, 41609, 31823, 11051, 48240, 40324, 13634, 34922, 30969, 47202, 46842, 42652, 47860, 27591, 47163, 44712, 47410, 36160, 47592, 31816, 26912, 46651, 36248, 26980, 40772, 11949, 31829, 36015, 12789, 38013, 34865, 13265, 49944, 43342, 41086, 47310, 47899, 13055, 37682, 27826, 49969, 37060, 40860, 11047, 27174, 42910, 31833, 49811, 30021, 43497, 27462, 48084, 37248, 42732, 40525, 49391, 47406, 13053, 13114, 40915, 28130, 36637, 29336, 28221, 40636, 12839, 34372, 42935, 48899, 46587, 30650, 37653, 40704, 13927, 42024, 47530, 32048, 34770, 49497, 27352, 31334, 12553, 36647, 42043, 41372, 40347, 30939, 43206, 13925, 37608, 30289, 29319, 46414, 32053, 35521, 40887, 31457, 30913, 41959, 47560, 43170, 13685, 13247, 40477, 32145, 27052, 44682, 40719, 39155, 36900, 41691, 41670, 34263, 31117, 49006, 46816, 11022, 47653, 31395, 28095, 42060, 14016, 28244, 30502, 48713, 37425, 26907, 12039, 48048, 42526, 34283, 45736, 31228, 40720, 40673, 33497, 34353, 30248, 46381, 31223, 49365, 40627, 30963, 40692, 27188, 36573, 36022, 40625, 12527, 28737, 34961, 47132, 30715, 47176, 48288, 34295, 48396, 27749, 29730, 36414, 30626, 42642, 43417, 26831, 28766, 49637, 11936, 49999, 13785, 36582, 32357, 34834, 47321, 34287, 12649, 43570, 36118, 37113, 34593, 34239, 40513, 42514, 30262, 27198, 47162, 37147, 43758, 41592, 27539, 39539, 37573, 37631, 47492, 40314, 32379, 40608, 43981, 31308, 42582, 28726, 47585, 40623, 12920, 13431, 28100, 31074, 37415, 34764, 43215, 13687, 29323, 47498, 32014, 47057, 31298, 30695, 40907, 46479, 37264, 11983, 13317, 41701, 46776, 47217, 48852, 49769, 42023, 43995, 49249, 41317, 43955, 29618, 39264, 48920, 36982, 27761, 37435, 36435, 30389, 50059, 46803, 36149, 30187, 48791, 47924, 40810, 26851, 37526, 42188, 27434, 37452, 43256, 34079, 11981, 43922, 47754, 42782, 40761, 13279, 30768, 31030, 34080, 48886, 32043, 47349, 42756, 46770, 40382, 13741, 40767, 46369, 27114, 47401, 42251, 27203, 34872, 43512, 40787, 31496, 27120, 42356, 13226, 34767, 47231, 12434, 49518, 47168, 36948, 12143, 40413, 43556, 12813, 31410, 34929, 29665, 27557, 40929, 31076, 31461, 26845, 44641, 44388, 32206, 13919, 11455, 35699, 48021, 13393
## 5 47207, 11295, 37764, 12130, 13036, 32119, 41908, 11277, 11275, 42600, 35809, 32108, 35525, 40532, 38126, 12393, 49703, 28723, 38930, 40750, 30803, 42915, 40289, 43551, 37109, 31050, 47582, 40697, 29369, 31973, 43096, 34448, 49014, 10969, 45199, 30600, 32004, 12743, 28481, 11767, 12255, 48511, 42136, 13898, 40656, 40582, 47555, 34784, 30604, 49088, 26900, 42821, 36299, 46883, 30396, 40429, 47474, 38081, 29334, 46347, 28686, 40311, 36319, 27112, 43406, 12229, 42961, 13589, 40893, 35519, 11786, 13269, 27657, 31282, 43380, 30465, 42609, 47476, 13507, 48985, 26889, 41058, 12226, 48934, 40440, 44784, 41948, 28542, 12465, 11207, 47416, 43400, 40649, 49941, 12730, 45047, 46593, 27149, 40886, 37920, 43262, 11085, 13748, 29773, 34422, 42415, 49016, 38961, 48151, 44717, 38368, 45619, 45703, 48111, 41139, 31773, 12092, 37427, 49899, 45710, 47096, 46687, 42768, 41239, 38332, 41638, 42712, 40695, 37324, 48064, 30410, 42786, 42711, 12829, 47811, 47105, 37006, 48940, 42674, 43159, 40698, 43222, 34814, 27133, 36887, 42309, 34813, 12156, 26810, 46534, 37743, 12613, 46554, 40652, 38944, 49201, 47454, 47897, 37589, 27003, 31320, 43545, 37444, 47260, 26793, 13686, 47326, 49085, 37361, 27330, 42195, 47153, 47927, 31551, 31580, 48373, 11199, 11612, 49750, 37787, 47143, 43450, 46900, 30141, 41201, 49775, 13022, 48797, 30377, 48858, 43034, 44369, 12454, 46975, 43253, 27504, 42785, 41222, 34832, 35967, 12671, 11763, 39002, 43739, 12155, 34067, 11282, 48167, 37192, 27366, 49565, 11178, 11724, 13820, 49512, 49838, 46445, 29303, 31897, 11791, 30599, 47735, 37457, 13572, 48869, 30200, 46706, 43898, 35476, 47677, 40769, 12336, 11102, 48161, 48070, 47133, 42682, 31006, 42525, 12723, 47580, 14065, 41379, 45019, 12425, 29580, 40380, 31906, 14031, 42128, 34927, 43278, 12937, 46946, 44004, 48926, 48760, 14066, 11825, 28402, 27451, 12787, 49033, 46531, 36388, 29191, 43481, 28987, 41615, 27289, 37260, 32335, 47159, 28134, 13325, 39160, 34379, 27459, 35796, 48062, 37878, 27359, 41153, 42054, 13650, 12178, 31604, 11090, 12288, 31747, 27728, 46686, 49202, 42172, 12286, 14107, 32333, 43914, 27432, 37136, 28046, 27376, 43992, 48536, 45693, 10942, 42438, 31263, 39233, 30509, 41655, 30060, 11301, 41146, 48098, 27892, 31561, 42408, 11765, 47550, 12409, 49457, 47973, 43237, 48826, 49695, 40317, 42293, 48407, 43900, 11901, 41901, 31341, 41124, 34103, 39254, 49791, 40312, 42798, 26892, 37193, 42522, 11488, 36634, 12316, 27369, 39413, 31367, 46620, 48811, 37846, 31014, 40402, 37410, 36695, 48646, 42659, 34201, 46752, 36243, 42502, 36650, 29093, 36311, 11570, 47984, 32435, 13666, 46924, 35494, 47495, 49456, 49198, 42274, 45643, 40356, 48241, 31368, 46393, 43049, 13487, 37078, 49639, 30577, 29025, 30488, 13495, 13488, 43091, 44934, 28759, 11418, 36451, 12287, 29832, 46733, 11368, 30412, 49230, 49643, 38622, 49034, 42775, 37612, 27464, 12965, 46440, 40345, 42011, 37388, 30320, 29761, 13359, 35811, 29370, 43752, 48689, 41986, 48967, 12860, 32078, 40313, 36907, 11585, 34155, 41397, 11594, 43657, 28015, 42800, 39428, 11597, 46612, 47137, 41392, 43282, 40621, 47534, 48409, 11673, 11531, 29298, 12998, 34096, 28934, 10936, 44033, 46410, 11078, 31145, 26865, 13708, 13026, 10962, 42947, 46780, 28865, 47226, 27287, 43455, 29221, 39409, 42109, 31098, 49169, 43514, 47732, 37241, 28413, 49714, 43218, 30448, 49115, 28051, 29212, 37841, 42966, 46551, 48039, 32409, 37553, 39394, 43748, 31444, 48097, 30955, 11465, 46685, 42288, 43683, 26832, 12407, 41037, 49217, 46411, 46789, 11054, 48863, 34840, 12734, 40329, 32295, 47591, 42102, 47083, 28654, 32297, 30548, 44027, 31363, 27759, 36422, 46697, 40288, 36348, 40275, 40420, 47613, 31741, 41707, 12459, 37117, 47767, 26936, 30539, 42478, 42601, 14093, 49810, 48358, 36521, 47704, 42663, 46769, 41535, 34956, 12491, 42316, 36357, 35960, 34145, 42448, 12475, 30649, 47577, 12572, 42747, 43229, 12353, 41312, 34807, 40535, 29161, 11911, 30433, 29225, 48757, 42434, 13464, 31086, 42979, 12002, 36144, 42361, 30258, 27193, 28376, 31540, 47502, 11177, 28000, 40752, 26986, 26773, 34284, 41604, 12338, 30836, 12244, 40854, 36957, 30580, 30809, 48808, 40273, 34206, 40816, 27523, 46720, 36627, 48134, 37750, 47043, 30464, 34669, 40511, 34107, 42864, 29464, 43307, 37251, 30199, 11830, 28656, 47442, 43681, 13652, 42679, 40316, 29481, 30559, 35982, 42970, 41097, 41950, 30269, 40505, 29248, 43099, 47535, 33578, 34873, 12718, 47977, 48163, 41304, 46464, 11458, 40940, 11669, 42350, 47676, 46984, 13426, 37155, 43312, 27510, 47491, 30076, 47283, 36655, 47291, 49716, 49691, 31555, 12941, 35881, 44670, 48135, 33139, 11853, 40327, 34804, 13839, 46645, 28831, 47056, 39317, 42235, 26978, 41983, 34138, 36534, 42662, 41936, 45126, 48845, 47744, 30400, 27070, 46427, 13515, 29348, 27183, 42653, 47500, 35687, 47506, 28963, 13851, 40538, 12261, 34249, 29501, 35542, 29474, 12850, 26874, 12050, 41054, 47184, 29550, 34188, 11297, 39303, 37178, 43375, 28913, 40274, 40294, 31862, 47029, 27094, 30727, 47618, 30092, 40343, 29777, 29561, 27994, 42912, 28856, 47741, 13932, 39257, 31387, 46731, 36574, 47691, 43529, 47145, 30384, 47672, 13002, 41473, 42630, 48987, 26867, 46380, 31325, 42889, 40660, 42774, 27583, 40268, 49556, 41704, 34335, 42210, 42372, 31877, 40902, 27253, 11953, 37148, 11605, 34947, 27942, 31700, 29516, 45572, 40522, 48285, 47250, 40367, 47273, 43141, 36977, 12895, 26931, 47138, 40878, 43401, 43260, 26757, 36707, 48834, 49733, 43691, 36322, 27733, 11442, 36389, 42176, 43219, 49143, 46509, 11249, 34893, 27241, 13262, 46800, 31116, 47801, 42469, 42414, 40909, 47173, 13832, 31723, 12431, 47222, 31276, 30843, 28712, 42330, 41199, 30222, 36940, 49870, 41434, 41711, 48695, 48013, 30435, 50031, 37411, 46987, 50023, 42196, 40323, 12768, 42093, 27335, 34803, 37714, 34459, 47764, 27530, 47843, 41309, 40442, 49060, 42345, 47576, 13822, 45724, 48379, 46477, 40405, 49106, 37646, 12790, 28428, 13461, 29289, 13911, 42108, 40564, 29524, 30285, 36272, 48784, 28287, 43567, 41208, 40265, 43917, 47239, 42025, 30709, 49059, 37279, 29185, 12542, 46463, 34383, 12129, 35897, 13471, 28149, 11121, 41487, 30459, 46950, 37495, 13470, 43102, 49592, 49993, 40997, 37153, 47874, 48857, 41013, 42217, 42750, 47895, 28178, 12642, 47634, 49093, 28595, 40408, 47054, 13580, 34450, 41098, 41092, 34071, 49330, 29199, 11416, 48159, 31810, 43972, 37771, 44356, 48942, 41609, 31823, 11051, 48240, 40324, 13634, 34922, 30969, 47202, 42652, 47860, 47163, 44712, 47410, 36160, 47592, 31816, 26912, 46651, 36248, 26980, 40772, 11949, 31829, 36015, 12789, 38013, 34865, 13265, 49944, 41086, 47310, 47899, 13055, 37682, 27826, 49969, 37060, 40860, 11047, 27174, 42910, 31833, 49811, 30021, 43497, 27462, 48084, 37248, 42732, 40525, 49391, 47406, 13053, 13114, 40915, 28130, 36637, 29336, 28221, 40636, 12839, 34372, 42935, 48899, 46587, 30650, 37653, 40704, 13927, 42024, 47530, 32048, 34770, 49497, 27352, 31334, 12553, 36647, 42043, 41372, 40347, 30939, 43206, 13925, 37608, 30289, 29319, 46414, 32053, 35521, 40887, 31457, 30913, 41959, 47560, 43170, 13685, 13247, 40477, 32145, 27052, 44682, 40719, 39155, 36900, 41691, 41670, 34263, 31117, 49006, 46816, 11022, 47653, 31395, 28095, 42060, 14016, 28244, 30502, 48713, 37425, 26907, 12039, 48048, 42526, 34283, 45736, 31228, 40720, 40673, 33497, 34353, 30248, 46381, 31223, 49365, 40627, 30963, 40692, 27188, 36573, 36022, 40625, 12527, 28737, 34961, 47132, 30715, 47176, 48288, 34295, 48396, 27749, 29730, 36414, 30626, 42642, 43417, 26831, 28766, 49637, 11936, 49999, 13785, 36582, 32357, 34834, 47321, 34287, 12649, 43570, 36118, 37113, 34593, 34239, 40513, 42514, 30262, 47162, 37147, 43758, 41592, 27539, 39539, 37573, 37631, 47492, 40314, 32379, 40608, 43981, 31308, 42582, 28726, 47585, 40623, 12920, 13431, 28100, 31074, 37415, 34764, 43215, 13687, 29323, 47498, 32014, 47057, 31298, 30695, 40907, 46479, 37264, 11983, 13317, 41701, 46776, 47217, 48852, 49769, 42023, 43995, 49249, 41317, 43955, 29618, 39264, 48920, 36982, 27761, 37435, 36435, 30389, 50059, 46803, 36149, 30187, 48791, 47924, 40810, 26851, 37526, 42188, 27434, 37452, 43256, 34079, 11981, 43922, 47754, 42782, 40761, 13279, 30768, 31030, 34080, 48886, 32043, 47349, 42756, 46770, 40382, 13741, 40767, 46369, 27114, 47401, 42251, 27203, 34872, 43512, 40787, 31496, 27120, 42356, 13226, 34767, 47231, 12434, 49518, 47168, 36948, 12143, 40413, 43556, 12813, 31410, 34929, 29665, 27557, 40929, 31076, 31461, 26845, 44641, 44388, 32206, 13919, 11455, 35699, 48021, 13393
## 6 47207, 11295, 37764, 12130, 13036, 32119, 41908, 11277, 11275, 42600, 35809, 32108, 35525, 40532, 38126, 12393, 49703, 28723, 38930, 40750, 30803, 42915, 28102, 43551, 37109, 31050, 47582, 40697, 29369, 31973, 43096, 34448, 49014, 10969, 45199, 30600, 32004, 12743, 28481, 11767, 12255, 48511, 42136, 13898, 40656, 40582, 47555, 34784, 30604, 49088, 26900, 42821, 36299, 46883, 30396, 40429, 47474, 38081, 29334, 46347, 28686, 40311, 36319, 27112, 43406, 12229, 42961, 13589, 40893, 35519, 11786, 13269, 27657, 31282, 43380, 30465, 42609, 47476, 13507, 48985, 26889, 41058, 12226, 48934, 40440, 44784, 41948, 28542, 12465, 11207, 47416, 43400, 40649, 49941, 12730, 45047, 46593, 27149, 40886, 37920, 43262, 11085, 13748, 29773, 34422, 42415, 49016, 38961, 48151, 44717, 38368, 45619, 45703, 48111, 41139, 31773, 12092, 37427, 49899, 45710, 47096, 46687, 42768, 41239, 38332, 41638, 42712, 40695, 37324, 48064, 30410, 42786, 42711, 12829, 47811, 47105, 37006, 48940, 42674, 43159, 40698, 43222, 34814, 27133, 36887, 42309, 34813, 12156, 26810, 46534, 37743, 12613, 46554, 40652, 38944, 49201, 47454, 47897, 37589, 31320, 43545, 37444, 47260, 26793, 13686, 47326, 49085, 37361, 27330, 42195, 47153, 47927, 31551, 31580, 48373, 11199, 11612, 49750, 37787, 47143, 43450, 46900, 30141, 41201, 49775, 13022, 48797, 30377, 48858, 43034, 44369, 12454, 46975, 43253, 27504, 42785, 41222, 34832, 35967, 12671, 11763, 39002, 43739, 12155, 34067, 11282, 48167, 37192, 27366, 49565, 11178, 11724, 13820, 49512, 49838, 46445, 29303, 31897, 11791, 30599, 47735, 37457, 13572, 48869, 30200, 46706, 43898, 35476, 47677, 40769, 12336, 11102, 48161, 48070, 47133, 42682, 31006, 42525, 12723, 47580, 14065, 45019, 12425, 29580, 40380, 31906, 14031, 42128, 34927, 43278, 12937, 46946, 44004, 48926, 48760, 14066, 11825, 28402, 27451, 12787, 49033, 46531, 36388, 29191, 43481, 28987, 41615, 27289, 37260, 32335, 47159, 28134, 13325, 39160, 34379, 27459, 35796, 48062, 37878, 27359, 41153, 42054, 13650, 12178, 31604, 11090, 12288, 31747, 27728, 46686, 49202, 42172, 12286, 14107, 32333, 43914, 27432, 37136, 28046, 27376, 43992, 48536, 45693, 10942, 42438, 31263, 39233, 30509, 41655, 30060, 11301, 41146, 48098, 27892, 31561, 42408, 11765, 47550, 12409, 49457, 47973, 43237, 48826, 49695, 40317, 42293, 48407, 43900, 11901, 41901, 31341, 41124, 34103, 39254, 49791, 40312, 42798, 26892, 37193, 42522, 11488, 36634, 12316, 27369, 39413, 31367, 46620, 48811, 37846, 31014, 40402, 37410, 36695, 48646, 42659, 34201, 46752, 36243, 42502, 36650, 29093, 36311, 11570, 47984, 32435, 13666, 46924, 35494, 47495, 49456, 49198, 42274, 45643, 40356, 48241, 31368, 46393, 43049, 13487, 37078, 49639, 30577, 29025, 30488, 13495, 13488, 43091, 44934, 28759, 11418, 36451, 12287, 29832, 46733, 11368, 30412, 49230, 49643, 38622, 49034, 42775, 37612, 27464, 12965, 46440, 40345, 42011, 37388, 30320, 29761, 13359, 35811, 29370, 43752, 48689, 41986, 48967, 12860, 32078, 40313, 36907, 11585, 34155, 41397, 11594, 43657, 28015, 42800, 39428, 11597, 46612, 47137, 41392, 43282, 40621, 47534, 48409, 11673, 11531, 29298, 12998, 34096, 28934, 10936, 44033, 46410, 11078, 31145, 26865, 13708, 13026, 10962, 42947, 46780, 28865, 47226, 27287, 43455, 29221, 39409, 42109, 31098, 49169, 43514, 47732, 37241, 28413, 49714, 43218, 30448, 49115, 28051, 29212, 37841, 42966, 46551, 48039, 32409, 37553, 39394, 43748, 31444, 48097, 30955, 11465, 46685, 42288, 43683, 26832, 12407, 41037, 49217, 46411, 46789, 11054, 48863, 34840, 12734, 40329, 32295, 47591, 47083, 28654, 32297, 30548, 44027, 31363, 27759, 36422, 46697, 40288, 36348, 40275, 40420, 47613, 31741, 41707, 12459, 37117, 47767, 26936, 30539, 42478, 42601, 14093, 49810, 48358, 36521, 47704, 42663, 46769, 41535, 34956, 12491, 42316, 36357, 35960, 34145, 42448, 12475, 30649, 47577, 12572, 42747, 43229, 12353, 41312, 34807, 40535, 29161, 11911, 30433, 29225, 48757, 42434, 13464, 31086, 42979, 12002, 36144, 42361, 30258, 27193, 28376, 31540, 47502, 11177, 28000, 40752, 26986, 26773, 34284, 41604, 12338, 30836, 12244, 40854, 36957, 30580, 30809, 48808, 40273, 34206, 40816, 27523, 46720, 36627, 48134, 37750, 47043, 30464, 34669, 40511, 34107, 42864, 29464, 43307, 37251, 30199, 11830, 28656, 47442, 43681, 13652, 42679, 40316, 29481, 30559, 35982, 42970, 41097, 41950, 30269, 40505, 29248, 43099, 47535, 33578, 34873, 12718, 47977, 48163, 41304, 46464, 11458, 40940, 11669, 42350, 47676, 46984, 13426, 37155, 43312, 27510, 47491, 30076, 47283, 36655, 47291, 49716, 49691, 31555, 12941, 35881, 44670, 48135, 33139, 11853, 40327, 34804, 13839, 46645, 28831, 47056, 39317, 42235, 26978, 41983, 34138, 36534, 42662, 41936, 45126, 48845, 47744, 30400, 27070, 46427, 13515, 29348, 27183, 42653, 47500, 35687, 47506, 28963, 13851, 40538, 12261, 34249, 29501, 35542, 29474, 12850, 26874, 12050, 41054, 47184, 29550, 34188, 11297, 39303, 37178, 43375, 28913, 40274, 40294, 31862, 47029, 27094, 30727, 47618, 30092, 40343, 29777, 29561, 27994, 42912, 28856, 47741, 13932, 39257, 31387, 46731, 36574, 47691, 43529, 47145, 30384, 47672, 13002, 41473, 42630, 48987, 26867, 46380, 31325, 42889, 40660, 42774, 27583, 40268, 49556, 41704, 34335, 42210, 42372, 31877, 40902, 27253, 11953, 37148, 11605, 34947, 27942, 31700, 29516, 45572, 40522, 48285, 47250, 40367, 47273, 43141, 36977, 12895, 26931, 47138, 40878, 43401, 43260, 26757, 36707, 48834, 49733, 43691, 36322, 27733, 11442, 36389, 42176, 43219, 49143, 46509, 11249, 34893, 27241, 13262, 46800, 31116, 47801, 42469, 42414, 40909, 47173, 13832, 31723, 12431, 47222, 31276, 30843, 28712, 42330, 41199, 30222, 36940, 49870, 41434, 41711, 48695, 48013, 30435, 50031, 37411, 46987, 50023, 42196, 40323, 12768, 42093, 27335, 34803, 37714, 34459, 47764, 27530, 47843, 41309, 40442, 49060, 42345, 47576, 13822, 45724, 48379, 46477, 40405, 49106, 37646, 12790, 28428, 13461, 29289, 13911, 42108, 40564, 29524, 30285, 36272, 48784, 28287, 43567, 41208, 40265, 43917, 47239, 42025, 30709, 49059, 37279, 29185, 12542, 46463, 34383, 12129, 35897, 13471, 28149, 11121, 41487, 30459, 46950, 37495, 13470, 43102, 49592, 49993, 40997, 37153, 47874, 48857, 41013, 42217, 42750, 47895, 28178, 12642, 47634, 49093, 28595, 40408, 47054, 13580, 34450, 41098, 41092, 34071, 49330, 29199, 11416, 48159, 31810, 43972, 37771, 44356, 48942, 41609, 31823, 11051, 48240, 40324, 13634, 34922, 30969, 47202, 46842, 42652, 47860, 27591, 47163, 44712, 47410, 36160, 47592, 31816, 26912, 46651, 36248, 26980, 40772, 11949, 31829, 36015, 12789, 38013, 34865, 13265, 49944, 43342, 41086, 47310, 47899, 13055, 37682, 27826, 49969, 37060, 40860, 11047, 27174, 42910, 31833, 49811, 30021, 43497, 27462, 48084, 37248, 42732, 40525, 49391, 47406, 13053, 13114, 40915, 28130, 36637, 29336, 28221, 40636, 12839, 34372, 42935, 48899, 46587, 30650, 37653, 40704, 13927, 42024, 47530, 32048, 34770, 49497, 27352, 31334, 12553, 36647, 42043, 41372, 40347, 30939, 43206, 13925, 37608, 30289, 29319, 46414, 32053, 35521, 40887, 31457, 30913, 41959, 47560, 43170, 13685, 13247, 40477, 32145, 27052, 44682, 40719, 39155, 36900, 41691, 41670, 34263, 31117, 49006, 46816, 11022, 47653, 31395, 28095, 42060, 14016, 28244, 30502, 48713, 37425, 26907, 12039, 48048, 42526, 34283, 45736, 31228, 40720, 40673, 33497, 34353, 30248, 46381, 31223, 49365, 40627, 30963, 40692, 27188, 36573, 36022, 40625, 12527, 28737, 34961, 47132, 30715, 47176, 48288, 34295, 48396, 27749, 29730, 36414, 30626, 42642, 43417, 26831, 28766, 49637, 11936, 49999, 13785, 36582, 32357, 34834, 47321, 34287, 12649, 43570, 36118, 37113, 34593, 34239, 40513, 42514, 30262, 27198, 47162, 37147, 43758, 41592, 27539, 39539, 37573, 37631, 47492, 40314, 32379, 40608, 43981, 31308, 42582, 28726, 47585, 40623, 12920, 13431, 28100, 31074, 37415, 34764, 43215, 13687, 29323, 47498, 32014, 47057, 31298, 30695, 40907, 46479, 37264, 11983, 13317, 41701, 46776, 47217, 48852, 49769, 42023, 43995, 49249, 41317, 43955, 29618, 39264, 48920, 36982, 27761, 37435, 36435, 30389, 50059, 46803, 36149, 30187, 48791, 47924, 40810, 26851, 37526, 42188, 27434, 37452, 43256, 34079, 11981, 43922, 47754, 42782, 40761, 13279, 30768, 31030, 34080, 48886, 32043, 47349, 42756, 46770, 40382, 13741, 40767, 46369, 27114, 47401, 42251, 27203, 34872, 43512, 40787, 31496, 27120, 42356, 13226, 34767, 47231, 12434, 49518, 47168, 36948, 12143, 40413, 43556, 12813, 31410, 34929, 29665, 27557, 40929, 31076, 31461, 26845, 44641, 44388, 32206, 13919, 11455, 35699, 48021, 13393
## 7 47207, 11295, 37764, 12130, 13036, 32119, 41908, 11277, 11275, 42600, 35809, 32108, 35525, 40532, 38126, 12393, 49703, 28723, 38930, 40750, 30803, 42915, 40289, 28102, 43551, 37109, 31050, 47582, 40697, 29369, 31973, 43096, 34448, 49014, 10969, 45199, 30600, 32004, 12743, 28481, 11767, 12255, 48511, 42136, 13898, 40656, 40582, 47555, 34784, 30604, 49088, 26900, 42821, 36299, 46883, 30396, 40429, 47474, 38081, 29334, 46347, 28686, 40311, 36319, 27112, 43406, 12229, 42961, 13589, 40893, 35519, 11786, 13269, 27657, 31282, 43380, 30465, 42609, 47476, 13507, 48985, 26889, 41058, 12226, 48934, 40440, 44784, 41948, 28542, 12465, 11207, 47416, 43400, 40649, 49941, 12730, 45047, 46593, 27149, 40886, 37920, 43262, 11085, 13748, 29773, 34422, 42415, 49016, 38961, 48151, 44717, 38368, 45619, 45703, 48111, 41139, 31773, 12092, 37427, 49899, 45710, 47096, 46687, 42768, 41239, 38332, 41638, 42712, 40695, 37324, 48064, 30410, 42786, 42711, 12829, 47811, 47105, 37006, 48940, 42674, 43159, 40698, 43222, 34814, 27133, 36887, 42309, 34813, 12156, 26810, 46534, 37743, 12613, 46554, 40652, 38944, 49201, 47454, 47897, 37589, 27003, 31320, 43545, 37444, 47260, 26793, 13686, 47326, 49085, 37361, 27330, 42195, 47153, 47927, 31551, 31580, 48373, 11199, 11612, 49750, 37787, 47143, 43450, 46900, 30141, 41201, 49775, 13022, 48797, 30377, 48858, 43034, 44369, 12454, 46975, 43253, 27504, 42785, 41222, 34832, 35967, 12671, 11763, 39002, 43739, 12155, 34067, 11282, 48167, 37192, 27366, 49565, 11178, 11724, 13820, 49512, 49838, 46445, 29303, 31897, 11791, 30599, 47735, 37457, 13572, 48869, 30200, 46706, 43898, 35476, 47677, 40769, 12336, 11102, 48161, 48070, 47133, 42682, 31006, 42525, 12723, 47580, 14065, 41379, 45019, 12425, 29580, 40380, 31906, 14031, 42128, 34927, 43278, 12937, 46946, 44004, 48926, 14066, 11825, 28402, 27451, 12787, 49033, 46531, 36388, 29191, 43481, 28987, 41615, 27289, 37260, 32335, 47159, 28134, 13325, 39160, 34379, 27459, 35796, 48062, 37878, 27359, 41153, 42054, 13650, 12178, 31604, 11090, 12288, 31747, 27728, 46686, 49202, 42172, 12286, 14107, 32333, 43914, 27432, 37136, 28046, 27376, 43992, 48536, 45693, 10942, 42438, 31263, 39233, 30509, 41655, 30060, 11301, 41146, 48098, 27892, 31561, 42408, 11765, 47550, 12409, 49457, 47973, 43237, 48826, 49695, 40317, 42293, 48407, 43900, 11901, 41901, 31341, 41124, 34103, 39254, 49791, 40312, 42798, 26892, 37193, 42522, 11488, 36634, 12316, 27369, 39413, 31367, 46620, 48811, 37846, 31014, 40402, 37410, 36695, 48646, 42659, 34201, 46752, 36243, 42502, 36650, 29093, 36311, 11570, 47984, 32435, 13666, 46924, 35494, 47495, 49456, 49198, 42274, 45643, 40356, 48241, 31368, 46393, 43049, 13487, 37078, 49639, 30577, 29025, 30488, 13495, 13488, 43091, 44934, 11418, 36451, 12287, 29832, 46733, 11368, 30412, 49230, 49643, 38622, 49034, 42775, 37612, 27464, 12965, 46440, 40345, 42011, 37388, 30320, 29761, 13359, 35811, 29370, 43752, 48689, 41986, 48967, 12860, 32078, 40313, 36907, 11585, 34155, 41397, 11594, 43657, 28015, 42800, 39428, 11597, 46612, 47137, 41392, 43282, 40621, 47534, 48409, 11673, 11531, 29298, 12998, 34096, 28934, 10936, 44033, 46410, 11078, 31145, 26865, 13708, 13026, 10962, 42947, 46780, 28865, 47226, 27287, 43455, 29221, 39409, 42109, 31098, 49169, 43514, 47732, 37241, 28413, 49714, 43218, 30448, 49115, 28051, 29212, 37841, 42966, 46551, 48039, 32409, 37553, 39394, 43748, 31444, 48097, 30955, 11465, 46685, 42288, 43683, 26832, 12407, 41037, 49217, 46411, 46789, 11054, 48863, 34840, 12734, 40329, 32295, 47591, 42102, 47083, 28654, 32297, 30548, 44027, 31363, 27759, 36422, 46697, 40288, 36348, 40275, 40420, 47613, 31741, 41707, 12459, 37117, 47767, 26936, 30539, 42478, 42601, 14093, 49810, 48358, 36521, 47704, 42663, 46769, 41535, 34956, 12491, 42316, 36357, 35960, 34145, 42448, 12475, 30649, 47577, 12572, 42747, 43229, 12353, 41312, 34807, 40535, 29161, 11911, 30433, 29225, 48757, 42434, 13464, 31086, 42979, 12002, 36144, 42361, 30258, 27193, 28376, 31540, 47502, 11177, 28000, 40752, 26986, 26773, 34284, 41604, 12338, 30836, 12244, 40854, 36957, 30580, 30809, 48808, 40273, 34206, 40816, 27523, 46720, 36627, 48134, 37750, 47043, 30464, 34669, 40511, 34107, 42864, 29464, 43307, 37251, 30199, 11830, 28656, 47442, 43681, 13652, 42679, 40316, 29481, 30559, 35982, 42970, 41097, 41950, 30269, 40505, 29248, 43099, 47535, 33578, 34873, 12718, 47977, 48163, 41304, 46464, 11458, 40940, 11669, 42350, 47676, 46984, 13426, 37155, 43312, 27510, 47491, 30076, 47283, 36655, 47291, 49716, 49691, 31555, 12941, 35881, 44670, 48135, 33139, 11853, 40327, 34804, 13839, 46645, 28831, 47056, 39317, 42235, 26978, 41983, 34138, 36534, 42662, 41936, 45126, 48845, 47744, 30400, 27070, 46427, 13515, 29348, 27183, 42653, 47500, 35687, 47506, 28963, 13851, 40538, 12261, 34249, 29501, 35542, 29474, 12850, 26874, 12050, 41054, 47184, 29550, 34188, 11297, 39303, 37178, 43375, 28913, 40274, 40294, 31862, 47029, 27094, 30727, 47618, 30092, 40343, 29777, 29561, 27994, 42912, 28856, 47741, 13932, 39257, 31387, 46731, 36574, 47691, 43529, 47145, 30384, 47672, 13002, 41473, 42630, 48987, 26867, 46380, 31325, 42889, 40660, 42774, 27583, 40268, 49556, 41704, 34335, 42210, 42372, 31877, 40902, 27253, 11953, 37148, 11605, 34947, 27942, 31700, 29516, 45572, 40522, 48285, 47250, 40367, 47273, 43141, 36977, 12895, 26931, 47138, 40878, 43401, 43260, 26757, 36707, 48834, 49733, 43691, 36322, 27733, 11442, 36389, 42176, 43219, 49143, 46509, 11249, 34893, 27241, 13262, 46800, 31116, 47801, 42469, 42414, 40909, 47173, 13832, 31723, 12431, 47222, 31276, 30843, 28712, 42330, 41199, 30222, 36940, 49870, 41434, 41711, 48695, 48013, 30435, 50031, 37411, 46987, 50023, 42196, 40323, 12768, 42093, 27335, 34803, 37714, 34459, 47764, 27530, 47843, 41309, 40442, 49060, 42345, 47576, 13822, 45724, 48379, 46477, 40405, 49106, 37646, 12790, 28428, 13461, 29289, 13911, 42108, 40564, 29524, 30285, 36272, 48784, 28287, 43567, 41208, 40265, 43917, 47239, 42025, 30709, 49059, 37279, 29185, 12542, 46463, 34383, 12129, 35897, 13471, 28149, 11121, 41487, 30459, 46950, 37495, 13470, 43102, 49592, 49993, 40997, 37153, 47874, 48857, 41013, 42217, 42750, 47895, 28178, 12642, 47634, 49093, 28595, 40408, 47054, 13580, 34450, 41098, 41092, 34071, 49330, 29199, 11416, 48159, 31810, 43972, 37771, 44356, 48942, 41609, 31823, 11051, 48240, 40324, 13634, 34922, 30969, 47202, 46842, 42652, 47860, 27591, 47163, 44712, 47410, 36160, 47592, 31816, 26912, 46651, 36248, 26980, 40772, 11949, 31829, 36015, 12789, 38013, 34865, 13265, 49944, 43342, 41086, 47310, 47899, 13055, 37682, 27826, 49969, 37060, 40860, 11047, 27174, 42910, 31833, 49811, 30021, 43497, 27462, 48084, 37248, 42732, 40525, 49391, 47406, 13053, 13114, 40915, 28130, 36637, 29336, 28221, 40636, 12839, 34372, 42935, 48899, 46587, 30650, 37653, 40704, 13927, 42024, 47530, 32048, 34770, 49497, 27352, 31334, 12553, 36647, 42043, 41372, 40347, 30939, 43206, 13925, 37608, 30289, 29319, 46414, 32053, 35521, 40887, 31457, 30913, 41959, 47560, 43170, 13685, 13247, 40477, 32145, 27052, 44682, 40719, 39155, 36900, 41691, 41670, 34263, 31117, 49006, 46816, 11022, 47653, 31395, 28095, 42060, 14016, 28244, 30502, 48713, 37425, 26907, 12039, 48048, 42526, 34283, 45736, 31228, 40720, 40673, 33497, 34353, 30248, 46381, 31223, 49365, 40627, 30963, 40692, 27188, 36573, 36022, 40625, 12527, 28737, 34961, 47132, 30715, 47176, 48288, 34295, 48396, 27749, 29730, 36414, 30626, 42642, 43417, 26831, 28766, 49637, 11936, 49999, 13785, 36582, 32357, 34834, 47321, 34287, 12649, 43570, 36118, 37113, 34593, 34239, 40513, 42514, 30262, 47162, 37147, 43758, 41592, 27539, 39539, 37573, 37631, 47492, 40314, 32379, 40608, 43981, 31308, 42582, 28726, 47585, 40623, 12920, 13431, 28100, 31074, 37415, 34764, 43215, 13687, 29323, 47498, 32014, 47057, 31298, 30695, 40907, 46479, 37264, 11983, 13317, 41701, 46776, 47217, 48852, 49769, 42023, 43995, 49249, 41317, 43955, 29618, 39264, 48920, 36982, 27761, 37435, 36435, 30389, 50059, 46803, 36149, 30187, 48791, 47924, 40810, 26851, 37526, 42188, 27434, 37452, 43256, 34079, 11981, 43922, 47754, 42782, 40761, 13279, 30768, 31030, 34080, 48886, 32043, 47349, 42756, 46770, 40382, 13741, 40767, 46369, 27114, 47401, 42251, 27203, 34872, 43512, 40787, 31496, 27120, 42356, 13226, 34767, 47231, 12434, 49518, 47168, 36948, 12143, 40413, 43556, 12813, 31410, 34929, 29665, 27557, 40929, 31076, 31461, 26845, 44641, 44388, 32206, 13919, 11455, 35699, 48021, 13393
## gfams_excl_b
## 2 28456, 33910, 19269, 41398, 41155, 37539, 19780, 34331, 30202, 47679, 49952, 19801, 48401, 19119, 36806, 29768, 19058, 37317, 19871, 34207, 26568, 34108, 19890, 34066, 19901, 23864, 19906, 30224, 31868, 19966, 27272, 43469, 49364, 45913, 20057, 27553, 37471, 23638, 20079, 18979, 22605, 40334, 27586, 49347, 41193, 19670, 27461, 30661, 22620, 20208, 34824, 28491, 26234, 48454, 37188, 47335, 27623, 48871, 19508, 22645, 39204, 41313, 28431, 31167, 20449, 35781, 20474, 45810, 39179, 48374, 19322, 23688, 35647, 20555, 46444, 19295, 28126, 20579, 20618, 30429, 48400, 25300, 27030, 42114, 20688, 31574, 37186, 22707, 20744, 20749, 33540, 20753, 26425, 20775, 42022, 23268, 22723, 20825, 34352, 48763, 41754, 20868, 20897, 25272, 30385, 37433, 22739, 20943, 26854, 19277, 46605, 22732, 20966, 24922, 24833, 40614, 48025, 24868, 50083, 37515, 33848, 22558, 19146, 48390, 31383, 41246, 25920, 32592, 47619, 36090, 19494, 45057, 46379, 37036, 40933, 39206, 19536, 37145, 30138, 40969, 31591, 49839, 19637, 21325, 39185, 43444, 34158, 41661, 46372, 21407, 38024, 31201, 49833, 34000, 36722, 22254, 42488, 42771, 48832, 25912, 47617, 40534, 46866, 31351, 37869, 25820, 29787, 21565, 34236, 48038, 37665, 25493, 37891, 48839, 32220, 21593, 19230, 28589, 28797, 19606, 21620, 40570, 38331, 24683, 35771, 21660, 26789, 33344, 31375, 21726, 36505, 19158, 43166, 27091, 26934, 34270, 36984, 19641, 21794, 25557, 47520, 21823, 49408, 30745, 21890, 19360, 19144, 43438, 21915
## 3 22280, 19167, 44526, 49739, 31982, 38153, 19149, 22551, 47619, 49977, 19895, 19929, 19646, 26322, 42218, 48401, 30429, 30278, 25469, 28476, 20086, 20099, 35437, 49752, 37583, 36743, 19052, 47216, 44379, 28342, 23881, 49779, 35923, 23238, 20236, 27113, 43349, 34417, 42248, 20287, 20321, 20377, 28502, 49049, 27333, 20433, 42952, 20475, 46845, 40725, 31068, 37349, 46896, 28148, 20525, 20534, 22673, 20558, 27299, 22476, 20583, 42965, 20591, 49327, 20620, 40607, 35749, 34073, 20738, 22709, 27284, 27644, 25170, 47961, 19488, 19684, 20927, 31912, 20932, 42331, 42360, 20966, 24687, 21048, 28927, 21073, 41120, 36407, 44558, 41504, 20708, 43867, 31770, 19278, 21250, 40207, 41194, 47076, 40876, 21321, 35705, 25912, 48995, 21351, 22118, 48780, 23304, 21411, 21412, 40399, 21425, 21447, 26202, 19690, 19364, 48694, 34331, 24789, 36922, 30202, 21653, 21661, 47487, 37876, 26959, 21688, 24048, 24649, 26423, 30741, 36795, 37051, 19693, 24828, 25239, 49831, 36491, 30553
## 4 19687, 47106, 22583, 19690, 19281, 22567, 24832, 46749, 22291, 37298, 20116, 28948, 29308, 19203, 28786, 26474, 32168, 48401, 22595, 22662, 33509, 37827, 26656, 32408, 26898, 48400, 22530, 39066, 40400, 30278, 21052, 22145, 21285, 36533, 29104, 22258, 43948, 37679, 22739, 21253, 22522, 34420, 19908, 41581, 42667, 41502, 40825, 49914, 49688, 42668, 40824, 40823, 22910
## 5 41623, 34316, 19756, 34790, 22539, 19793, 22549, 29280, 24838, 31577, 19847, 26852, 34918, 22558, 25475, 22205, 29224, 23935, 25757, 43322, 23723, 26411, 26973, 22522, 42972, 19281, 29964, 43039, 47204, 24586, 26959, 25663, 33943, 31869, 20221, 30429, 29554, 27113, 22567, 35990, 19203, 44800, 46985, 22650, 26657, 32103, 22663, 27284, 29645, 29893, 35870, 30553, 26858, 28443, 35639, 20635, 26618, 33961, 29642, 28529, 19962, 47968, 22532, 28535, 35632, 23674, 38043, 23271, 28547, 20908, 19021, 29876, 22755, 23459, 19375, 19719, 21146, 19121, 32514, 42352, 19024, 25629, 21265, 22747, 48889, 19685, 29400, 37567, 22347, 27007, 41676, 22127, 31526, 29744, 24924, 19657, 27024, 48038, 28588, 39993, 21623, 36317, 24631, 28659, 29350, 22739, 19524, 40472, 40308, 48453, 37152, 41581, 49543, 43031, 22167, 21845, 46473, 46585, 43285, 29855, 49687
## 6 29637, 22132, 22400, 25445, 19737, 28459, 22416, 25553, 39576, 49266, 39952, 22491, 22198, 19638, 19970, 25142, 22595, 22575, 47041, 46605, 39507, 28391, 30356, 20235, 22502, 48462, 20242, 23493, 27113, 20268, 28496, 20290, 19272, 22138, 25352, 40199, 38359, 20408, 37688, 28506, 20467, 20485, 22660, 19911, 45064, 20533, 45607, 30875, 33141, 35877, 27493, 43017, 22313, 30553, 48816, 19830, 46877, 20708, 30101, 31532, 20778, 25277, 19772, 19624, 30305, 42224, 44642, 43731, 38043, 20976, 41412, 22323, 25251, 25998, 41500, 22174, 22578, 21054, 21065, 21083, 28558, 44665, 22238, 42228, 39822, 25464, 33886, 43967, 21182, 21199, 22280, 22336, 49552, 19953, 22261, 31557, 19644, 26884, 28433, 48612, 24341, 21356, 31781, 26882, 21440, 35859, 42783, 19416, 44638, 20648, 19181, 49151, 43322, 21538, 28584, 28776, 21553, 25309, 21588, 23175, 49366, 32213, 49395, 47353, 27872, 19517, 36785, 47345, 42322, 45743, 27676, 41938, 29855
## 7 22522, 40575, 42090, 33913, 19758, 28300, 31869, 46762, 19922, 32852, 33640, 36031, 40205, 22576, 31818, 24631, 22149, 30383, 22279, 29263, 26616, 30594, 22651, 20429, 20467, 28010, 41826, 34978, 22298, 46947, 20759, 30557, 35062, 22708, 23279, 21017, 22432, 36683, 47877, 28340, 42586, 39162, 33995, 29554, 30812, 32125, 46569, 22545, 23314, 21399, 30319, 48038, 21545, 30797, 49625, 34124, 44227, 26114, 41938, 19719, 42710, 24863
A look at the number of genes belonging to enriched gene families between comparisons
# Group by module and summarize
commongenes <- PFLA_SPUR_COMPARISON$orthology_overlap_modules$
genes_in_common_fams$commonfams$table_a_common %>%
group_by(module) %>%
summarize(
numgenes = n(),
genes = paste(ifelse(n() > 3, paste0(paste(head(id, 3), collapse = ",")," ..."), paste(id, collapse = ", ")), collapse = ", ")
)
# Rename columns
colnames(commongenes) <- c("module", "numgenes", "genes")
commongenes
## # A tibble: 20 × 3
## module numgenes genes
## <chr> <int> <chr>
## 1 06__1 40 TCONS_00038727,TCONS_00023138,TCONS_00056203 ...
## 2 14__16 97 TCONS_00023217,TCONS_00024858,TCONS_00025437 ...
## 3 15__15 31 TCONS_00023592,TCONS_00057045,TCONS_00055928 ...
## 4 15__21 56 TCONS_00032648,TCONS_00025160,TCONS_00023914 ...
## 5 15__23 50 TCONS_00032648,TCONS_00025201,TCONS_00025327 ...
## 6 15__24 59 TCONS_00038770,TCONS_00032648,TCONS_00024740 ...
## 7 17__15 48 TCONS_00032533,TCONS_00023193,TCONS_00024774 ...
## 8 17__21 68 TCONS_00032270,TCONS_00032297,TCONS_00024774 ...
## 9 17__23 71 TCONS_00032297,TCONS_00032533,TCONS_00023193 ...
## 10 19__15 50 TCONS_00023644,TCONS_00025571,TCONS_00054896 ...
## 11 19__21 92 TCONS_00024996,TCONS_00023644,TCONS_00025571 ...
## 12 19__23 73 TCONS_00024996,TCONS_00023644,TCONS_00025571 ...
## 13 19__24 110 TCONS_00023497,TCONS_00024996,TCONS_00023644 ...
## 14 21__15 36 TCONS_00056437,TCONS_00010149,TCONS_00010655 ...
## 15 21__21 61 TCONS_00024610,TCONS_00023732,TCONS_00056554 ...
## 16 21__23 66 TCONS_00024739,TCONS_00025412,TCONS_00024226 ...
## 17 22__15 28 TCONS_00055259,TCONS_00056618,TCONS_00010938 ...
## 18 22__21 57 TCONS_00056618,TCONS_00055613,TCONS_00056881 ...
## 19 22__23 45 TCONS_00055613,TCONS_00055692,TCONS_00056881 ...
## 20 22__24 70 TCONS_00055259,TCONS_00055518,TCONS_00055613 ...
The gene age enrichment and functional category enrichment of these genes:
PFLA_SPUR_COMPARISON$orthology_overlap_modules$
genes_in_common_fams$commonfams$
age_a_common$heatmap +
PFLA_SPUR_COMPARISON$orthology_overlap_modules$
genes_in_common_fams$commonfams$
cog_a_comon$heatmap
And the GO terms of these genes:
# Add a new column with the name of the original data frame
keygenes_commonfams_GO <-
bind_rows(
PFLA_SPUR_COMPARISON$orthology_overlap_modules$
genes_in_common_fams$commonfams$go_a_common$GOtable,
.id = "pair_gfams"
)
# Rename the new column
colnames(keygenes_commonfams_GO)[1] <- "pair_gfams"
keygenes_commonfams_GO$logp <-
-log10(as.numeric(keygenes_commonfams_GO$classicFisher))
## Warning: NAs introduced by coercion
keygenes_commonfams_GO$logp[is.na(keygenes_commonfams_GO$logp)] <-
max(keygenes_commonfams_GO$logp, na.rm = T)
keygenes_commonfams_GO$obsexp <-
as.numeric(keygenes_commonfams_GO$Significant/keygenes_commonfams_GO$Expected)
keygenes_commonfams_GO <-
keygenes_commonfams_GO[
order(
keygenes_commonfams_GO$pair_gfams,
keygenes_commonfams_GO$Term
),
]
keygenes_commonfams_GO$Term <-
factor(
keygenes_commonfams_GO$Term,
levels = unique(keygenes_commonfams_GO$Term)
)
The plot of the GO enrichment analysis:
gg <- keygenes_commonfams_GO %>%
ggplot(
aes(x=pair_gfams, y = Term, size = Significant, color = logp)
) + geom_point() +
theme_bw() +
theme(
axis.text.x = element_text(angle = 45, hjust = 1, size = 8 )
)+
theme(
axis.text.y.left = element_text(hjust = 1, size = 8 ),
legend.title=element_text(size=8 ),
legend.text=element_text(size=8 )
)+
scale_size_continuous(
name = "Genes affected",
range = c(2,6)
) + scale_color_viridis("-log10(P-value)") +
xlab("")+ylab("")
gg
We will load the TF data to explore commonalities across the three species
# General
load("outputs/rda/TF_annotation.rda")
# ptychodera
load("outputs/rda/tf_analysis.rda")
# amphioxus
load("outputs/rda/tf_analysis_blan.rda")
# sea urchin
load("outputs/rda/tf_analysis_spur.rda")
We will plot all the TF barplots together in one grid
library(ggpubr)
##
## Attaching package: 'ggpubr'
## The following object is masked from 'package:cowplot':
##
## get_legend
## The following object is masked from 'package:ape':
##
## rotate
## The following object is masked from 'package:dendextend':
##
## rotate
library(ggplot2)
library(dplyr)
ggarrange(
pfla_tfs_ngenes_plot,
spur_tfs_ngenes_plot,
blan_tfs_ngenes_plot,
pfla_tfs_expgenes_plot,
spur_tfs_expgenes_plot,
blan_tfs_expgenes_plot,
pfla_tf_EXPNGEN_plot,
spur_tf_EXPNGEN_plot,
blan_tf_EXPNGEN_plot,
ncol=3,
nrow=3,
common.legend=T
)
And we will also concatenate the TF class prominence tables of all species to see how similar these stages are across species at the TF program level.
all_devstages_topclasses_EXPNGEN <-
cbind(
pfla_tf_EXPNGEN,
spur_tf_EXPNGEN,
blan_tf_EXPNGEN
)
colnames(all_devstages_topclasses_EXPNGEN)[1:16] <-
sub(
"^X",
"Pfla_",
colnames(all_devstages_topclasses_EXPNGEN)[1:16]
)
colnames(all_devstages_topclasses_EXPNGEN)[17:33] <-
sub(
"^X",
"Spur_",
colnames(all_devstages_topclasses_EXPNGEN)[17:33]
)
colnames(all_devstages_topclasses_EXPNGEN)[34:45] <-
sub(
"^X",
"Blan_",
colnames(all_devstages_topclasses_EXPNGEN)[34:45]
)
The plot:
barplot_cluster(
t(all_devstages_topclasses_EXPNGEN),
dist_method = "manhattan",
clu_method = "complete",
bar_colors = topclasses_col
)
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## Warning: Please use `linewidth` instead.
Quick co-occurrence analysis at the TF level betwewn ptychodera and amphioxus:
pfla_blan_commontfs <-
PFLA_BLAN_COMPARISON$merged_data$ab_o[ # From the comparABle object: get the merge of blan & pfla datasets
rownames(PFLA_BLAN_COMPARISON$merged_data$ab_o) %in% # only the genes that
PFLA_BLAN_COMPARISON$input[[3]][ # are one-to-one orthologs (3rd element of the input object), but specifically those that
(
PFLA_BLAN_COMPARISON$input[[3]]$a %in% pfla_tfs$id | # are TFs either in Ptychodera
PFLA_BLAN_COMPARISON$input[[3]]$b %in% blan_tfs$id # or in Amphioxus
),1
],
]
pfla_blan_commontfs_cooc <-
treeFromEnsembleClustering(
pfla_blan_commontfs,
vargenes = rownames(pfla_blan_commontfs),
n = 500,
p = 0.3,
h = c(0.9)
)
plot(pfla_blan_commontfs_cooc$tree)
And between ptychodera and sea urchin:
pfla_spur_commontfs <-
PFLA_SPUR_COMPARISON$merged_data$ab_o[ # From the comparABle object: get the merge of spur & pfla datasets
rownames(PFLA_SPUR_COMPARISON$merged_data$ab_o) %in% # only the genes that
PFLA_SPUR_COMPARISON$input[[3]][ # are one-to-one orthologs (3rd element of the input object), but specifically those that
(
PFLA_SPUR_COMPARISON$input[[3]]$a %in% pfla_tfs$id | # are TFs either in Ptychodera
PFLA_SPUR_COMPARISON$input[[3]]$b %in% spur_tfs$id # or in Sea urchin
),1
],
]
pfla_spur_commontfs_cooc <-
treeFromEnsembleClustering(
pfla_spur_commontfs,
vargenes = rownames(pfla_spur_commontfs),
n = 500,
p = 0.3,
h = c(0.9)
)
plot(pfla_spur_commontfs_cooc$tree)
We will load the graph analysis data to plot the networks of different deuterostomes>
library(igraph)
load("outputs/rda/graph_analysis.rda")
The Ptychodera homologs of the endomesodermal kernel described in Sea Urchins, expressed and interacting in the Late Gastrula network:
# Load orthologs of endomesodermal kernel
genes_endomesod <-
read.table(
"outputs/functional_annotation/grn_homologs/genes_endo_mesoderm.tsv",
col.names = c("id","gene")
)
# Create induced subgraph
endomesod_graph <-
induced_subgraph(
pfla_LG_graph2,
vids = V(pfla_LG_graph2)[V(pfla_LG_graph2)$name %in% genes_endomesod$id],
impl = "copy_and_delete"
)
V(endomesod_graph)$col[V(endomesod_graph)$col==""] <- "gray"
V(endomesod_graph)$genename <- translate_ids(x = V(endomesod_graph)$name, dict = genes_endomesod)
## direct genes involved
set.seed(123)
plot(
endomesod_graph,
vertex.color = V(endomesod_graph)$col,
vertex.label = V(endomesod_graph)$genename,
edge.width = (E(endomesod_graph)$width*2)^2,
edge.arrow.size = 0.3,
edge.color = rgb(0,0,0,0.1),
layout = layout_with_fr(endomesod_graph),
main = "Endomesoderm Kernel Graph"
)
The Ptychodera homologs of the axial mesoderm kernel described in Chordates, expressed and interacting in the Late Gastrula network:
# Load orthologs of axial mesoderm kernel
genes_axmesod <- read.table("outputs/functional_annotation/grn_homologs/genes_axial_mesoderm.tsv", col.names=c("id","gene"))
# Create induced subgraph
axmesod_graph <-
induced_subgraph(
pfla_LG_graph2,
vids = V(pfla_LG_graph2)[V(pfla_LG_graph2)$name %in% genes_axmesod$id],
impl = "copy_and_delete"
)
V(axmesod_graph)$col[V(axmesod_graph)$col==""] <- "gray"
V(axmesod_graph)$genename <- translate_ids(x = V(axmesod_graph)$name, dict = genes_axmesod)
## direct genes involved
set.seed(123)
plot(
axmesod_graph,
vertex.color = V(axmesod_graph)$col,
vertex.label = V(axmesod_graph)$genename,
edge.width = (E(axmesod_graph)$width*2)^3,
edge.arrow.size = 0.3,
edge.color = rgb(0,0,0,0.1),
layout = layout_with_lgl(axmesod_graph),
main = "Axial Mesoderm Kernel Graph"
)
We will save these two objects for further analysis and reference:
save(
PFLA_BLAN_COMPARISON,
PFLA_SPUR_COMPARISON,
all_devstages_topclasses_EXPNGEN,
endomesod_graph,
axmesod_graph,
file = "outputs/rda/species_comparison.rda"
)